diff --git a/src/sage/coding/linear_code.py b/src/sage/coding/linear_code.py index 8c330c7..b3901f8 100644 --- a/src/sage/coding/linear_code.py +++ b/src/sage/coding/linear_code.py @@ -479,17 +479,17 @@ class AbstractLinearCode(AbstractLinearCodeNoMetric): 0 sage: C = codes.HammingCode(GF(4, 'z'), 3) sage: C.automorphism_group_gens() - ([((1, z, z + 1, z, z, 1, 1, z, z + 1, z, z, 1, z, z + 1, z, z, 1, z, z + 1, z, z); (1,5,18,7,11,8)(2,12,21)(3,20,14,10,19,15)(4,9)(13,17,16), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z + 1), - ((1, 1, z, z + 1, z, z, z + 1, z + 1, z, 1, 1, z, z, z + 1, z + 1, 1, z, z, 1, z, z + 1); (2,11)(3,13)(4,14)(5,20)(6,17)(8,15)(16,19), Ring endomorphism of Finite Field in z of size 2^2 + ([((1, 1, 1, 1, 1, z + 1, z, z + 1, z, z, z, 1, 1, z + 1, z + 1, z, z + 1, z, z + 1, z + 1, z + 1); (1,14,6,7,4,10,11,19)(2,8,16,13,3,17,21,15)(9,12,18,20), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z + 1), + ((z + 1, 1, 1, z, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, z + 1, 1, z, z + 1, z + 1, z); (1,18,6,19,2,9,17,10,13,14,21,11,4,5,12)(3,20,7,16,8), Ring endomorphism of Finite Field in z of size 2^2 + Defn: z |--> z), ((z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z); (), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z)], 362880) sage: C.automorphism_group_gens(equivalence="linear") - ([((z, 1, 1, z, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, 1, 1, z, z, z + 1, z); (1,6)(2,20,9,16)(3,10,8,11)(4,15,21,5)(12,17)(13,14,19,18), Ring endomorphism of Finite Field in z of size 2^2 + ([((z + 1, 1, z + 1, z + 1, z + 1, z, 1, z, 1, 1, 1, 1, z + 1, z + 1, z + 1, z, z, 1, z, z, z); (1,15,2,8,16,18,3)(4,9,12,13,20,10,11)(5,21,14,6,7,19,17), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z), - ((1, z, z + 1, z, z, z, z + 1, z + 1, 1, z, z, z, 1, z, 1, z + 1, z, z + 1, z, z + 1, 1); (1,15,20,5,8,6,12,14,13,7,16,11,19,3,21,4,9,10,18,17,2), Ring endomorphism of Finite Field in z of size 2^2 + ((z + 1, z + 1, z + 1, z + 1, z + 1, 1, z, 1, z, z, z, 1, z, 1, 1, 1, z + 1, z + 1, z + 1, 1, z); (1,15,21,8,9)(2,18,5,3,11,16,7,10,19,13,12,4,17,6,20), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z), ((z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1, z + 1); (), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z)], @@ -705,10 +705,10 @@ class AbstractLinearCode(AbstractLinearCodeNoMetric): sage: C_iso == aut_group_can_label.get_canonical_form() True sage: aut_group_can_label.get_autom_gens() - [((1, z, z + 1, z, z, 1, 1, z, z + 1, z, z, 1, z, z + 1, z, z, 1, z, z + 1, z, z); (1,5,18,7,11,8)(2,12,21)(3,20,14,10,19,15)(4,9)(13,17,16), Ring endomorphism of Finite Field in z of size 2^2 - Defn: z |--> z + 1), - ((1, 1, z, z + 1, z, z, z + 1, z + 1, z, 1, 1, z, z, z + 1, z + 1, 1, z, z, 1, z, z + 1); (2,11)(3,13)(4,14)(5,20)(6,17)(8,15)(16,19), Ring endomorphism of Finite Field in z of size 2^2 + [((1, 1, 1, 1, 1, z + 1, z, z + 1, z, z, z, 1, 1, z + 1, z + 1, z, z + 1, z, z + 1, z + 1, z + 1); (1,14,6,7,4,10,11,19)(2,8,16,13,3,17,21,15)(9,12,18,20), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z + 1), + ((z + 1, 1, 1, z, z + 1, z, z, z + 1, z + 1, z + 1, 1, z + 1, z, z, 1, z + 1, 1, z, z + 1, z + 1, z); (1,18,6,19,2,9,17,10,13,14,21,11,4,5,12)(3,20,7,16,8), Ring endomorphism of Finite Field in z of size 2^2 + Defn: z |--> z), ((z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z, z); (), Ring endomorphism of Finite Field in z of size 2^2 Defn: z |--> z)] """ diff --git a/src/sage/combinat/tiling.py b/src/sage/combinat/tiling.py index 3a70f13..e03fdd8 100644 --- a/src/sage/combinat/tiling.py +++ b/src/sage/combinat/tiling.py @@ -320,21 +320,21 @@ def ncube_isometry_group(n, orientation_preserving=True): sage: ncube_isometry_group(3) [ - [1 0 0] [ 1 0 0] [ 0 1 0] [ 0 0 -1] [ 1 0 0] [ 0 1 0] - [0 1 0] [ 0 0 1] [ 0 0 -1] [ 0 -1 0] [ 0 0 -1] [-1 0 0] - [0 0 1], [ 0 -1 0], [-1 0 0], [-1 0 0], [ 0 1 0], [ 0 0 1], + [1 0 0] [ 1 0 0] [ 1 0 0] [ 0 1 0] [0 1 0] [ 0 0 1] + [0 1 0] [ 0 0 1] [ 0 0 -1] [-1 0 0] [0 0 1] [ 0 -1 0] + [0 0 1], [ 0 -1 0], [ 0 1 0], [ 0 0 1], [1 0 0], [ 1 0 0], - [ 1 0 0] [ 0 0 1] [0 1 0] [ 0 0 1] [ 0 0 -1] [ 0 -1 0] - [ 0 -1 0] [-1 0 0] [0 0 1] [ 0 -1 0] [-1 0 0] [-1 0 0] - [ 0 0 -1], [ 0 -1 0], [1 0 0], [ 1 0 0], [ 0 1 0], [ 0 0 -1], + [-1 0 0] [ 0 -1 0] [-1 0 0] [-1 0 0] [ 0 -1 0] [ 0 0 -1] + [ 0 -1 0] [ 0 0 -1] [ 0 0 -1] [ 0 1 0] [ 0 0 1] [ 1 0 0] + [ 0 0 1], [ 1 0 0], [ 0 -1 0], [ 0 0 -1], [-1 0 0], [ 0 -1 0], - [ 0 1 0] [ 0 0 1] [ 0 0 -1] [ 0 -1 0] [0 0 1] [ 0 -1 0] - [ 1 0 0] [ 0 1 0] [ 1 0 0] [ 0 0 1] [1 0 0] [ 1 0 0] - [ 0 0 -1], [-1 0 0], [ 0 -1 0], [-1 0 0], [0 1 0], [ 0 0 1], + [ 0 1 0] [ 0 0 1] [0 0 1] [ 0 -1 0] [ 0 0 -1] [-1 0 0] + [ 1 0 0] [ 0 1 0] [1 0 0] [ 1 0 0] [ 0 1 0] [ 0 0 1] + [ 0 0 -1], [-1 0 0], [0 1 0], [ 0 0 1], [ 1 0 0], [ 0 1 0], - [-1 0 0] [-1 0 0] [ 0 0 -1] [-1 0 0] [ 0 -1 0] [-1 0 0] - [ 0 1 0] [ 0 0 -1] [ 0 1 0] [ 0 0 1] [ 0 0 -1] [ 0 -1 0] - [ 0 0 -1], [ 0 -1 0], [ 1 0 0], [ 0 1 0], [ 1 0 0], [ 0 0 1] + [ 0 -1 0] [ 0 0 -1] [ 0 0 1] [ 1 0 0] [ 0 0 -1] [ 0 1 0] + [-1 0 0] [-1 0 0] [-1 0 0] [ 0 -1 0] [ 0 -1 0] [ 0 0 -1] + [ 0 0 -1], [ 0 1 0], [ 0 -1 0], [ 0 0 -1], [-1 0 0], [-1 0 0] ] TESTS:: diff --git a/src/sage/groups/finitely_presented.py b/src/sage/groups/finitely_presented.py index 1642d48..4d1dd4c 100644 --- a/src/sage/groups/finitely_presented.py +++ b/src/sage/groups/finitely_presented.py @@ -1201,7 +1201,7 @@ class FinitelyPresentedGroup(GroupMixinLibGAP, UniqueRepresentation, sage: D = C2.semidirect_product(C8, hom); D Finitely presented group < a, b | a^2, b^8, a^-1*b*a*b > sage: D = C2.semidirect_product(C8, hom, reduced=True); D - Finitely presented group < a, b | a^2, (a*b)^2, b^8 > + Finitely presented group < a, b | a^2, a*b*a*b, b^8 > sage: C3 = groups.presentation.Cyclic(3) sage: C4 = groups.presentation.Cyclic(4) @@ -1442,22 +1442,25 @@ class FinitelyPresentedGroup(GroupMixinLibGAP, UniqueRepresentation, sage: H = AlternatingGroup(3) sage: G.epimorphisms(H) [Generic morphism: - From: Finitely presented group < x0, x1, x2 | (x0*x1*x2)^2, x0^3 > + From: Finitely presented group < x0, x1, x2 | x0*x1*x2*x0*x1*x2, x0^3 > To: Alternating group of order 3!/2 as a permutation group Defn: x0 |--> () x1 |--> (1,3,2) - x2 |--> (1,2,3), Generic morphism: - From: Finitely presented group < x0, x1, x2 | (x0*x1*x2)^2, x0^3 > + x2 |--> (1,2,3), + Generic morphism: + From: Finitely presented group < x0, x1, x2 | x0*x1*x2*x0*x1*x2, x0^3 > To: Alternating group of order 3!/2 as a permutation group Defn: x0 |--> (1,3,2) x1 |--> () - x2 |--> (1,2,3), Generic morphism: - From: Finitely presented group < x0, x1, x2 | (x0*x1*x2)^2, x0^3 > + x2 |--> (1,2,3), + Generic morphism: + From: Finitely presented group < x0, x1, x2 | x0*x1*x2*x0*x1*x2, x0^3 > To: Alternating group of order 3!/2 as a permutation group Defn: x0 |--> (1,3,2) x1 |--> (1,2,3) - x2 |--> (), Generic morphism: - From: Finitely presented group < x0, x1, x2 | (x0*x1*x2)^2, x0^3 > + x2 |--> (), + Generic morphism: + From: Finitely presented group < x0, x1, x2 | x0*x1*x2*x0*x1*x2, x0^3 > To: Alternating group of order 3!/2 as a permutation group Defn: x0 |--> (1,2,3) x1 |--> (1,2,3) @@ -1548,11 +1551,11 @@ class FinitelyPresentedGroup(GroupMixinLibGAP, UniqueRepresentation, sage: G = F / [a^2,b^3,(a*b/a)^3,b*a*b*a] sage: k = G.rewriting_system() sage: k - Rewriting system of Finitely presented group < a, b | a^2, b^3, a*b^3*a^-1, (b*a)^2 > + Rewriting system of Finitely presented group < a, b | a^2, b^3, a*b^3*a^-1, b*a*b*a > with rules: a^2 ---> 1 b^3 ---> 1 - (b*a)^2 ---> 1 + b*a*b*a ---> 1 a*b^3*a^-1 ---> 1 sage: G([1,1,2,2,2]) diff --git a/src/sage/groups/matrix_gps/finitely_generated.py b/src/sage/groups/matrix_gps/finitely_generated.py index 2467582..ac0b7a3 100644 --- a/src/sage/groups/matrix_gps/finitely_generated.py +++ b/src/sage/groups/matrix_gps/finitely_generated.py @@ -549,8 +549,8 @@ class FinitelyGeneratedMatrixGroup_gap(MatrixGroup_gap): sage: MS = MatrixSpace(GF(2), 5, 5) sage: A = MS([[0,0,0,0,1],[0,0,0,1,0],[0,0,1,0,0],[0,1,0,0,0],[1,0,0,0,0]]) sage: G = MatrixGroup([A]) - sage: G.as_permutation_group() - Permutation Group with generators [(1,2)] + sage: G.as_permutation_group().order() + 2 A finite subgroup of GL(12,Z) as a permutation group:: @@ -624,8 +624,8 @@ class FinitelyGeneratedMatrixGroup_gap(MatrixGroup_gap): sage: MG = GU(3,2).as_matrix_group() sage: PG = MG.as_permutation_group() sage: mg = MG.an_element() - sage: PG(mg) - (1,2,6,19,35,33)(3,9,26,14,31,23)(4,13,5)(7,22,17)(8,24,12)(10,16,32,27,20,28)(11,30,18)(15,25,36,34,29,21) + sage: PG(mg).order() # particular element depends on the set of GAP packages installed + 6 """ # Note that the output of IsomorphismPermGroup() depends on # memory locations and will change if you change the order of diff --git a/src/sage/groups/perm_gps/permgroup.py b/src/sage/groups/perm_gps/permgroup.py index c411b1e..0355cb6 100644 --- a/src/sage/groups/perm_gps/permgroup.py +++ b/src/sage/groups/perm_gps/permgroup.py @@ -850,7 +850,7 @@ class PermutationGroup_generic(FiniteGroup): sage: f=PG._coerce_map_from_(MG) sage: mg = MG.an_element() sage: p = f(mg); p - (1,2,6,19,35,33)(3,9,26,14,31,23)(4,13,5)(7,22,17)(8,24,12)(10,16,32,27,20,28)(11,30,18)(15,25,36,34,29,21) + (2,33,32,23,31,55)(3,49,38,44,40,28)(4,17,59,62,58,46)(5,21,47,20,43,8)(6,53,50)(7,37,12,57,14,29)(9,41,56,34,64,10)(11,25,19)(13,61,26,51,22,15)(16,45,36)(18,27,35,48,52,54)(24,63,42)(30,39,60) sage: PG(p._gap_()) == p True @@ -899,9 +899,9 @@ class PermutationGroup_generic(FiniteGroup): False sage: g1, g2, g3 = G.gens() sage: P(g1*g2) - (1,9,7,6)(2,10)(3,11)(4,5,8,12) + (1,3,7,12)(2,4,8,10)(5,11)(6,9) sage: P1(g1*g2) - (1,4,13,11)(2,5,14,18)(3,15,8,16)(6,7)(9,20,19,12)(10,17) + (2,29,25,68)(3,57,13,54)(4,11,72,37)(5,39,60,23)(6,64,75,63)(7,21,50,73)(8,46,38,32)(9,74,35,18)(10,44,49,48)(12,16,34,71)(14,79,27,40)(15,26)(17,62,59,76)(19,78,70,65)(20,22,58,51)(24,33,36,43)(28,81,80,52)(30,53,56,69)(31,61)(41,42,67,55)(45,77)(47,66) Another check for :trac:`5583`:: diff --git a/src/sage/interfaces/gap.py b/src/sage/interfaces/gap.py index 123afb8..67e3bbf 100644 --- a/src/sage/interfaces/gap.py +++ b/src/sage/interfaces/gap.py @@ -277,7 +277,7 @@ def get_gap_memory_pool_size(): # Don't eat all address space if the user set ulimit -v suggested_size = min(suggested_size, vmax // 10) # ~220MB is the minimum for long doctests - suggested_size = max(suggested_size, 250 * 1024**2) + suggested_size = max(suggested_size, 400 * 1024**2) return suggested_size @@ -886,7 +886,7 @@ class Gap_generic(ExtraTabCompletion, Expect): sage: print(gap.version()) 4... """ - return self.eval('VERSION')[1:-1] + return self.eval('GAPInfo.Version')[1:-1] def function_call(self, function, args=None, kwds=None): """ @@ -915,7 +915,7 @@ class Gap_generic(ExtraTabCompletion, Expect): properly:: sage: g = Gap() - sage: g.function_call("ConjugacyClassesSubgroups", sage.interfaces.gap.GapElement(g, 'SymmetricGroup(2)', name = 'a_variable_with_a_very_very_very_long_name')) + sage: g.function_call("ConjugacyClassesSubgroups", sage.interfaces.gap.GapElement(g, 'SymmetricGroup(2)', name = 'a_variable_with_a_very_very_very_long_name')) # random [ ConjugacyClassSubgroups(SymmetricGroup( [ 1 .. 2 ] ),Group( () )), ConjugacyClassSubgroups(SymmetricGroup( [ 1 .. 2 ] ),Group( [ (1,2) ] )) ] @@ -923,7 +923,7 @@ class Gap_generic(ExtraTabCompletion, Expect): file to be communicated to GAP, this does not cause problems since the file will contain a single command:: - sage: g.function_call("ConjugacyClassesSubgroups", sage.interfaces.gap.GapElement(g, 'SymmetricGroup(2)', name = 'a_variable_with_a_name_so_very_very_very_long_that_even_by_itself_will_make_expect_use_a_file')) + sage: g.function_call("ConjugacyClassesSubgroups", sage.interfaces.gap.GapElement(g, 'SymmetricGroup(2)', name = 'a_variable_with_a_name_so_very_very_very_long_that_even_by_itself_will_make_expect_use_a_file')) # random [ ConjugacyClassSubgroups(SymmetricGroup( [ 1 .. 2 ] ),Group( () )), ConjugacyClassSubgroups(SymmetricGroup( [ 1 .. 2 ] ),Group( [ (1,2) ] )) ] """ diff --git a/src/sage/libs/gap/sage.gaprc b/src/sage/libs/gap/sage.gaprc index 17613fa..39c878f 100644 --- a/src/sage/libs/gap/sage.gaprc +++ b/src/sage/libs/gap/sage.gaprc @@ -1,12 +1,3 @@ # This file is run by Sage when initializing libgap via GAP_Initialize, and may # contain bug fixes/workarounds and/or any Sage-specific patches necessary for # Sage's libgap interface. - -if GAPInfo.CommandLineOptions.norepl then - # GAP 4.10.0 has a bug that an interactive session will be started - # even if --norepl was set; see https://github.com/gap-system/gap/pull/2840 - # To work around this we redefine the SESSION function to a no-op - MAKE_READ_WRITE_GLOBAL("SESSION"); - UNBIND_GLOBAL("SESSION"); - BIND_GLOBAL("SESSION", function() end); -fi; diff --git a/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py b/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py index b609313..0051f20 100644 --- a/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py +++ b/src/sage/tests/books/judson-abstract-algebra/sylow-sage.py @@ -236,7 +236,7 @@ r""" ~~~~~~~~~~~~~~~~~~~~~~ :: sage: G.Center() - Group( [ ( 1, 3, 5)( 2, 4, 6) ] ) + Group( [ (1,3,5)(2,4,6) ] ) ~~~~~~~~~~~~~~~~~~~~~~ ::