Definition
Informal definition
Let ''G'' be a finite group and let ''S'' be a subset of ''G''. A sequence ''L'' = (''g''1,…,''g''''m'') of elements of ''G'' is a ''straight-line program'' over ''S'' if each ''g''''i'' can be obtained by one of the following three rules: # ''g''''i'' ∈ ''S'' # ''g''''i'' = ''g''''j'' ''g''''k'' for some ''j'',''k'' < ''i'' # ''g''''i'' = ''g'' for some ''j'' < ''i''. The straight-line ''cost'' ''c''(''g'', ''S'') of an element ''g'' ∈ ''G'' is the length of a shortest straight-line program over ''S'' computing ''g''. The cost is infinite if ''g'' is not in the subgroup generated by ''S''. A straight-line program is similar to a derivation in predicate logic. The elements of ''S'' correspond to axioms and the group operations correspond to the rules of inference.Formal definition
Let ''G'' be a finite group and let ''S'' be a subset of ''G''. A ''straight-line program'' of length ''m'' over ''S'' computing some ''g'' ∈ ''G'' is a sequence of expressions (''w''1,…,''w''''m'') such that for each ''i'', ''w''''i'' is a symbol for some element of ''S'', or ''w''''i'' = (''w''''j'',-1) for some ''j'' < ''i'', or ''w''''i'' = (''w''''j'',''w''''k'') for some ''j'',''k'' < ''i'', such that ''w''''m'' takes upon the value ''g'' when evaluated in ''G'' in the obvious manner. The original definition appearing in Ákos Seress. (2003). Permutation Group Algorithms. nline Cambridge Tracts in Mathematics. (No. 152). Cambridge: Cambridge University Press. requires that ''G'' =〈''S''〉. The definition presented above is a common generalisation of this. From a computational perspective, the formal definition of a straight-line program has some advantages. Firstly, a sequence of abstract expressions requires less memory than terms over the generating set. Secondly, it allows straight-line programs to be constructed in one representation of ''G'' and evaluated in another. This is an important feature of some algorithms.Examples
The dihedral group D12 is the group of symmetries of a hexagon. It can be generated by a 60 degree rotation ρ and one reflection λ. The leftmost column of the following is a straight-line program for λρ3: # λ # ρ # ρ2 # ρ3 # λρ3 # λ is a generator. # ρ is a generator. # Second rule: (2).(2) # Second rule: (3).(2) # Second rule: (1).(4) In S6, the group of permutations on six letters, we can take α=(1 2 3 4 5 6) and β=(1 2) as generators. The leftmost column here is an example of a straight-line program to compute (1 2 3)(4 5 6): # α # β # α2 # α2β # α2βα # α2βαβ # α2βαβα2βαβ # (1 2 3 4 5 6) # (1 2) # (1 3 5)(2 4 6) # (1 3 5 2 4 6) # (1 4)(2 5 3 6) # (1 4 2 5 3 6) # (1 2 3)(4 5 6) # α is a generator # β is a generator # Second rule: (1).(1) # Second rule: (3).(2) # Second rule: (4).(1) # Second rule: (5).(2) # Second rule: (6).(6)Applications
''Short descriptions of finite groups''. Straight-line programs can be used to study compression of finite groups viaReachability theorem
The reachability theorem states that, given a finite group ''G'' generated by ''S'', each ''g'' ∈ ''G'' has a maximum cost of . This can be understood as a bound on how hard it is to generate a group element from the generators. Here the function lg(''x'') is an integer-valued version of the logarithm function: for ''k''≥1 let lg(''k'') = max. The idea of the proof is to construct a set ''Z'' = that will work as a new generating set (''s'' will be defined during the process). It is usually larger than ''S'', but any element of ''G'' can be expressed as a word of length at most over ''Z''. The set ''Z'' is constructed by inductively defining an increasing sequence of sets ''K''(''i''). Let ''K''(''i'') = , where ''z''''i'' is the group element added to ''Z'' at the ''i''-th step. Let ''c''(''i'') denote the length of a shortest straight-line program that contains ''Z''(''i'') = . Let ''K''(0) = and ''c''(0)=0. We define the set ''Z'' recursively: * If ''K''(''i'')−1''K''(''i'') = ''G'', declare ''s'' to take upon the value ''i'' and stop. * Else, choose some ''z''''i''+1 ∈ ''G''\''K''(''i'')−1''K''(''i'') (which is non-empty) that minimises the "cost increase" ''c''(''i''+1) − ''c''(''i''). By this process, ''Z'' is defined in a way so that any ''g'' ∈ ''G'' can be written as an element of ''K''(''i'')−1''K''(''i''), effectively making it easier to generate from ''Z''. We now need to verify the following claim to ensure that the process terminates within lg(, ''G'', ) many steps: The next claim is used to show that the cost of every group element is within the required bound. It takes at most 2''i'' steps to generate ''g''1 ∈ ''K''(''i'')−1''K''(''i''). There is no point in generating the element of maximum length, since it is the identity. Hence steps suffice. To generate ''g''1·''g''2 ∈ ''G''\''K''(''i'')−1''K''(''i''), 2''i'' steps are sufficient. We now finish the theorem. Since ''K''(''s'')−1''K''(''s'') = ''G'', any ''g'' ∈ ''G'' can be written in the form ''k''·''k''2 with ''k'',''k''2 ∈ ''K''(''s''). By Corollary 2, we need at most steps to generate ''Z''(''s'') = ''Z'', and no more than steps to generate ''g'' from ''Z''(''s''). Therefore .References
{{reflist Algebra