Automorphism Groups

PermutationGroupHadamardCodeZ4(δ, m) : RngIntElt, RngIntElt -> GrpPerm, Mtrx
PAutHadamardCodeZ4(δ, m) : RngIntElt, RngIntElt -> GrpPerm, Mtrx
Given an integer m≥1 and an integer δ such that 1≤δ ≤⌊(m + 1)/2 ⌋, this function returns the permutation group G of a Hadamard code over Z4 of length 2m - 1 and type 2γ 4δ, where γ=m + 1 - 2δ. The group G contains all permutations of the coordinates which preserve the code. Thus only permutation of coordinates is allowed, and the degree of G is always 2m - 1. Moreover, the generator matrix with γ + δ rows used to generate the code is returned. This matrix is constructed in a recursive way using the Plotkin and BQPlotkin constructions defined in Section New Codes from Old.
PermutationGroupHadamardCodeZ4Order(δ, m) : RngIntElt, RngIntElt -> RngIntElt
PAutHadamardCodeZ4Order(δ, m) : RngIntElt, RngIntElt -> RngIntElt
Given an integer m≥1 and an integer δ such that 1≤δ ≤⌊(m + 1)/2 ⌋, return the order of the permutation group G of a Hadamard code over Z4 of length 2m - 1 and type 2γ 4δ, where γ=m + 1 - 2δ. The group G contains all permutations of the coordinates which preserve the code.
PermutationGroupExtendedPerfectCodeZ4(δ, m) : RngIntElt, RngIntElt -> GrpPerm, Mtrx
PAutExtendedPerfectCodeZ4(δ, m) : RngIntElt, RngIntElt -> GrpPerm, Mtrx
Given an integer m≥2 and an integer δ such that 1≤δ ≤⌊(m + 1)/2 ⌋, return the permutation group G of an extended perfect code over Z4 of length 2m - 1, such that its dual code is of type 2γ 4δ, where γ=m + 1 - 2δ. The group G contains all permutations of the coordinates which preserve the code. Thus only permutation of coordinates is allowed, and the degree of G is always 2m - 1. Moreover, the generator matrix with γ + δ rows used to generate the code is returned. This matrix is constructed in a recursive way using the Plotkin and BQPlotkin constructions defined in Section New Codes from Old.
PermutationGroupExtendedPerfectCodeZ4Order(δ, m) : RngIntElt, RngIntElt -> RngIntElt
PAutExtendedPerfectCodeZ4Order(δ, m) : RngIntElt, RngIntElt -> RngIntElt
Given an integer m≥2 and an integer δ such that 1≤δ ≤⌊(m + 1)/2 ⌋, return the order of the permutation group G of an extended perfect code over Z4 of length 2m - 1, such that its dual code is of type 2γ 4δ, where γ=m + 1 - 2δ. The group G contains all permutations of the coordinates which preserve the code.

Example CodeZ4_spain-Z4-8 (H165E25)

> C := HadamardCodeZ4(2,4);
> PAut := PAutHadamardCodeZ4(2,4);
> PAut;
Permutation group PAut acting on a set of cardinality 8
    (1, 2)(3, 4)(5, 6)(7, 8)
    (2, 4)(6, 8)
    (5, 7)(6, 8)
    (1, 5)(3, 7)
> {p : p in Sym(8) | C^p eq C} eq Set(PAut);
true
> #PAut eq PAutHadamardCodeZ4Order(2,4);
true
> d := 2; m := 4; g := m+1-2*d;
> PAutHadamardCodeZ4Order(d, m) eq
>  #GL(d-1,Integers(4))*#GL(g,Integers(2))*2^g*4^((g+1)*(d-1));
true
> d := 4; m := 8; g := m+1-2*d;
> PAutHadamardCodeZ4Order(d, m) eq
>   #GL(d-1,Integers(4))*#GL(g,Integers(2))*2^g*4^((g+1)*(d-1));
true
> PAutHadamardCodeZ4(2,4) eq PAutExtendedPerfectCodeZ4(2,4);
true
PermutationGroup(C) : CodeLinRng -> GrpPerm
The permutation group G of the linear code C of length n over the ring R, where G is the group of all permutation-action permutations which preserve the code. Thus only permutation of coordinates is allowed, and the degree of G is always n.
PermutationGroupGrayMapImage(C) : CodeLinRng -> GrpPerm
Given a code C over Z4 of length n, return the permutation group Gbin of Cbin=Φ(C), where Gbin is the group of all permutation-action permutations which preserve the binary code Cbin of length 2n and Φ is the Gray map. Thus only permutation of coordinates is allowed, and the degree of Gbin is always 2n.

Example CodeZ4_code-z4-perm-group (H165E26)

> C := HadamardCodeZ4(2,4);
> PAutC := PermutationGroup(C);
> PAutC eq PAutHadamardCodeZ4(2,4);
true
> #PAutC eq PAutHadamardCodeZ4Order(2,4);
true
> {p : p in Sym(8) | C^p eq C} eq Set(PAutC);
true
> Cbin := GrayMapImage(C);
> PAutCbin := PermutationGroupGrayMapImage(C);
> {p : p in PAutCbin | Set(Cbin)^p eq Set(Cbin)} eq Set(PAutCbin);
true
V2.28, 13 July 2023