Automorphism Group
Automorphisms acting on a quantum code are a slight generalization of those which act on the underlying additive stabilizer code. Automorphisms consists of both a permutation action on the columns of a stabilizer code, combined with a monomial action on the individual columns which permute the values.
The automorphism group of a length \(n\) additive stabilizer code over \({\mathbb{F}}_4\) is a subgroup of \(Z_3 \wr Sym(n)\) of order \(3*n!\). However the automorphism group of the quantum code it generates is a subgroup of \(Sym(3) \wr Sym(n)\) of order \(3!*n!\) because of the more general action on the values in the columns.
In Magma automorphisms are returned as permutations, either as length \(3n\) permutations for the full monomial action on a code, or as length \(n\) permutations when the automorphism is restricted to only the permutation action on the columns.
- AutomorphismGroup(Q): CodeQuantum -> GrpPerm
The automorphism group of the quantum code \(Q\). Currently this function only applies to binary quantum codes.
- PermutationGroup(Q): CodeQuantum -> GrpPerm
The subgroup of the automorphism group of the quantum code \(Q\) consisting of those automorphisms which permute the coordinates of codewords. Currently this function only applies to binary quantum codes.
- Example: Automorphism Group of the Dodecacode (ex-9f0d8a)
Run in calculator (opens in a new tab)
The full automorphism group and its subgroup of coordinate permutations are calculated for the dodecacode.
> F<w> := GF(4); > Q := Dodecacode(); > Q; [[12, 0, 6]] self-dual Quantum code over GF(2^2), stabilised by: [ 1 0 0 0 0 0 w^2 w^2 0 w 1 w] [ w 0 0 0 0 0 w 0 w w w 1] [ 0 1 0 0 0 0 1 0 1 w^2 w^2 1] [ 0 w 0 0 0 0 0 w 1 w w w] [ 0 0 1 0 0 0 0 1 1 1 w^2 w^2] [ 0 0 w 0 0 0 w^2 1 w^2 w w 0] [ 0 0 0 1 0 0 w w 1 1 0 1] [ 0 0 0 w 0 0 w 1 w w^2 w^2 0] [ 0 0 0 0 1 0 w w w 0 1 w] [ 0 0 0 0 w 0 w^2 1 1 w^2 0 w] [ 0 0 0 0 0 1 w^2 w^2 w^2 1 0 w^2] [ 0 0 0 0 0 w w 1 0 1 w w] > > AutomorphismGroup(Q); Permutation group acting on a set of cardinality 36 Order = 648 = 2^3 * 3^4 (1, 4, 32)(2, 5, 33)(3, 6, 31)(7, 13, 29)(8, 14, 30)(9, 15, 28)(10, 35, 22) (11, 36, 23)(12, 34, 24)(16, 19, 26)(17, 20, 27)(18, 21, 25) (4, 23, 8, 29, 10, 20, 18, 36, 32)(5, 24, 9, 30, 11, 21, 16, 34, 33) (6, 22, 7, 28, 12, 19, 17, 35, 31)(13, 14, 15)(25, 27, 26) (7, 35)(8, 36)(9, 34)(10, 20)(11, 21)(12, 19)(13, 26)(14, 27)(15, 25) (16, 30)(17, 28)(18, 29)(22, 31)(23, 32)(24, 33) (4, 29, 18)(5, 30, 16)(6, 28, 17)(7, 19, 31)(8, 20, 32)(9, 21, 33) (10, 36, 23)(11, 34, 24)(12, 35, 22) > PermutationGroup(Q); Permutation group acting on a set of cardinality 12 (1, 7, 9, 3, 5, 11)(2, 8, 10, 4, 6, 12) (1, 2)(3, 4)(5, 10)(6, 9)(7, 12)(8, 11) (2, 4)(5, 9)(6, 12)(7, 11)(8, 10)
- Example: Automorphism Groups of the Hexacode (ex-320db8)
Run in calculator (opens in a new tab)
The automorphism group for a quantum code is larger than that of its stabilizer code. In this example that is shown for the Hexacode.
> F<w> := GF(4); > Q := Hexacode(); > Q:Minimal; [[6, 0, 4]] self-dual Quantum code over GF(2^2) > A_Q := AutomorphismGroup(Q); > A_Q; Permutation group A_Q acting on a set of cardinality 18 Order = 2160 = 2^4 * 3^3 * 5 (1, 4)(2, 6)(3, 5)(7, 8)(10, 12)(13, 14)(17, 18) (2, 3)(5, 6)(7, 8)(10, 18)(11, 16)(12, 17)(13, 14) (4, 7)(5, 8)(6, 9)(13, 17)(14, 16)(15, 18) (7, 13)(8, 14)(9, 15)(10, 17)(11, 16)(12, 18) (7, 12)(8, 10)(9, 11)(13, 18)(14, 17)(15, 16) > S := StabilizerCode(Q); > A_S := AutomorphismGroup(S); > A_S; Permutation group A_S acting on a set of cardinality 18 Order = 180 = 2^2 * 3^2 * 5 (1, 4)(2, 5)(3, 6)(7, 13)(8, 14)(9, 15) (4, 7, 12)(5, 8, 10)(6, 9, 11)(13, 15, 14)(16, 18, 17) (4, 6, 5)(7, 14, 11)(8, 15, 12)(9, 13, 10)(16, 18, 17) > A_S subset A_Q; true