Groups of Straight-Line Programs# Introduction Construction of an SLP-Group and its Elements Structure Constructors SLPGroup(n): RngIntElt → GrpSLP Example: SLP Group Construction of an Element Identity(G): GrpSLP → GrpSLPElt Id(G): GrpSLP → GrpSLPElt G ! 1: GrpSLP, RngIntElt → GrpSLPElt Arithmetic with Elements u * v: GrpSLPElt, GrpSLPElt → GrpSLPElt u ^ m: GrpSLPElt, RngIntElt → GrpSLPElt u ^ v: GrpSLPElt, GrpSLPElt → GrpSLPElt # u: GrpSLPElt → RngIntElt Accessing the Defining Generators and Relations G . i: GrpSLP, RngIntElt → GrpSLPElt Generators(G): GrpSLP → { GrpSLPElt} NumberOfGenerators(G): GrpSLP → RngIntElt Ngens(G): GrpSLP → RngIntElt Parent(u): GrpSLPElt → GrpSLP Addition of Extra Generators AddRedundantGenerators(G, Q): GrpSLP, [ GrpSLPElt ] → GrpSLP Creating Homomorphisms hom< G -> H | L: parameters>: GrpSLP, Grp → Map Evaluate(u, Q): GrpSLPElt, [ GrpElt ] → GrpElt Evaluate(u, G): GrpSLPElt, Grp → GrpElt Evaluate(v, Q): [ GrpSLPElt ], [ GrpElt ] → GrpElt Evaluate(v, G): [ GrpSLPElt ], Grp → GrpElt Example: Constructing Homomorphisms Operations on Elements Equality and Comparison u eq v: GrpSLPElt, GrpSLPElt → BoolElt u ne v: GrpSLPElt, GrpSLPElt → BoolElt Set-Theoretic Operations Membership and Equality g in G: GrpSLPElt, GrpSLP → BoolElt g notin G: GrpSLPElt, GrpSLP → BoolElt S subset G: { GrpSLPElt}, GrpSLP → BoolElt S notsubset G: { GrpSLPElt}, GrpSLP → BoolElt Set Operations RandomProcess(G): GrpSLP → Process Random(P): Process → GrpSLPElt Rep(G): GrpSLP → GrpSLPElt Example: Homomorphism Speed Coercions Between Related Groups G ! g: GrpSLP, GrpSLPElt → GrpSLPElt