Skip to content

Commit 2ab900f

Browse files
committed
some care about algebra_generators
1 parent 4e2319b commit 2ab900f

File tree

10 files changed

+82
-94
lines changed

10 files changed

+82
-94
lines changed

src/sage/algebras/jordan_algebra.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -311,7 +311,7 @@ def _an_element_(self):
311311
return self.element_class(self, self._A.an_element())
312312

313313
@cached_method
314-
def basis(self):
314+
def basis(self) -> Family:
315315
"""
316316
Return the basis of ``self``.
317317
@@ -323,12 +323,13 @@ def basis(self):
323323
Lazy family (Term map(i))_{i in Free monoid on 3 generators (x, y, z)}
324324
"""
325325
B = self._A.basis()
326-
return Family(B.keys(), lambda x: self.element_class(self, B[x]), name="Term map")
326+
return Family(B.keys(),
327+
lambda x: self.element_class(self, B[x]), name="Term map")
327328

328329
algebra_generators = basis
329330

330331
# TODO: Keep this until we can better handle R.<...> shorthand
331-
def gens(self) -> tuple:
332+
def gens(self) -> Family:
332333
"""
333334
Return the generators of ``self``.
334335
@@ -338,16 +339,16 @@ def gens(self) -> tuple:
338339
sage: C = CombinatorialFreeModule(QQ, ['x','y','z'], category=cat)
339340
sage: J = JordanAlgebra(C)
340341
sage: J.gens()
341-
(B['x'], B['y'], B['z'])
342+
Finite family {'x': B['x'], 'y': B['y'], 'z': B['z']}
342343
343344
sage: F.<x,y,z> = FreeAlgebra(QQ)
344345
sage: J = JordanAlgebra(F)
345346
sage: J.gens()
346347
Traceback (most recent call last):
347348
...
348-
NotImplementedError: infinite set
349+
Lazy family (Term map(i))_{i in Free monoid on 3 generators (x, y, z)}
349350
"""
350-
return tuple(self.algebra_generators())
351+
return self.algebra_generators()
351352

352353
@cached_method
353354
def zero(self):
@@ -741,7 +742,7 @@ def _coerce_map_from_base_ring(self):
741742
return self._generic_coerce_map(self.base_ring())
742743

743744
@cached_method
744-
def basis(self):
745+
def basis(self) -> Family:
745746
"""
746747
Return a basis of ``self``.
747748
@@ -763,7 +764,7 @@ def basis(self):
763764

764765
algebra_generators = basis
765766

766-
def gens(self) -> tuple:
767+
def gens(self) -> Family:
767768
"""
768769
Return the generators of ``self``.
769770
@@ -772,9 +773,9 @@ def gens(self) -> tuple:
772773
sage: m = matrix([[0,1],[1,1]])
773774
sage: J = JordanAlgebra(m)
774775
sage: J.gens()
775-
(1 + (0, 0), 0 + (1, 0), 0 + (0, 1))
776+
Family (1 + (0, 0), 0 + (1, 0), 0 + (0, 1))
776777
"""
777-
return tuple(self.algebra_generators())
778+
return self.algebra_generators()
778779

779780
@cached_method
780781
def zero(self):
@@ -1270,7 +1271,7 @@ def _test_multiplication_self_adjoint(self, **options):
12701271
tester.assertEqual(val.imag_part(), zerO)
12711272

12721273
@cached_method
1273-
def basis(self):
1274+
def basis(self) -> Family:
12741275
r"""
12751276
Return a basis of ``self``.
12761277
@@ -1315,7 +1316,7 @@ def basis(self):
13151316

13161317
algebra_generators = basis
13171318

1318-
def gens(self) -> tuple:
1319+
def gens(self) -> Family:
13191320
"""
13201321
Return the generators of ``self``.
13211322
@@ -1337,7 +1338,7 @@ def gens(self) -> tuple:
13371338
[ 0 0 k]
13381339
[ 0 -k 0]
13391340
"""
1340-
return tuple(self.algebra_generators())
1341+
return self.basis()
13411342

13421343
@cached_method
13431344
def zero(self):

src/sage/combinat/free_dendriform_algebra.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ def gen(self, i):
249249
return G[G.keys().unrank(i)]
250250

251251
@cached_method
252-
def algebra_generators(self):
252+
def algebra_generators(self) -> Family:
253253
r"""
254254
Return the generators of this algebra.
255255
@@ -266,6 +266,12 @@ def algebra_generators(self):
266266
sage: A = algebras.FreeDendriform(QQ, ['x1','x2'])
267267
sage: list(A.algebra_generators())
268268
[B[x1[., .]], B[x2[., .]]]
269+
270+
TESTS::
271+
272+
sage: A = algebras.FreeDendriform(ZZ, 'fgh')
273+
sage: A.gens()
274+
Finite family {'f': B[f[., .]], 'g': B[g[., .]], 'h': B[h[., .]]}
269275
"""
270276
Trees = self.basis().keys()
271277
return Family(self._alphabet, lambda a: self.monomial(Trees([], a)))
@@ -287,17 +293,7 @@ def change_ring(self, R):
287293
"""
288294
return FreeDendriformAlgebra(R, names=self.variable_names())
289295

290-
def gens(self) -> tuple:
291-
"""
292-
Return the generators of ``self`` (as an algebra).
293-
294-
EXAMPLES::
295-
296-
sage: A = algebras.FreeDendriform(ZZ, 'fgh')
297-
sage: A.gens()
298-
(B[f[., .]], B[g[., .]], B[h[., .]])
299-
"""
300-
return tuple(self.algebra_generators())
296+
gens = algebra_generators
301297

302298
def degree_on_basis(self, t):
303299
"""

src/sage/combinat/free_prelie_algebra.py

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -310,7 +310,7 @@ def gen(self, i):
310310
return G[G.keys().unrank(i)]
311311

312312
@cached_method
313-
def algebra_generators(self):
313+
def algebra_generators(self) -> Family:
314314
r"""
315315
Return the generators of this algebra.
316316
@@ -327,6 +327,12 @@ def algebra_generators(self):
327327
sage: A = algebras.FreePreLie(QQ, ['x1','x2'])
328328
sage: list(A.algebra_generators())
329329
[B[x1[]], B[x2[]]]
330+
331+
TESTS::
332+
333+
sage: A = algebras.FreePreLie(ZZ, 'fgh')
334+
sage: A.gens()
335+
Finite family {'f': B[f[]], 'g': B[g[]], 'h': B[h[]]}
330336
"""
331337
Trees = self.basis().keys()
332338
return Family(self._alphabet, lambda a: self.monomial(Trees([], a)))
@@ -348,17 +354,7 @@ def change_ring(self, R):
348354
"""
349355
return FreePreLieAlgebra(R, names=self.variable_names())
350356

351-
def gens(self) -> tuple:
352-
"""
353-
Return the generators of ``self`` (as an algebra).
354-
355-
EXAMPLES::
356-
357-
sage: A = algebras.FreePreLie(ZZ, 'fgh')
358-
sage: A.gens()
359-
(B[f[]], B[g[]], B[h[]])
360-
"""
361-
return tuple(self.algebra_generators())
357+
gens = algebra_generators
362358

363359
def degree_on_basis(self, t):
364360
"""

src/sage/combinat/ncsf_qsym/ncsf.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,10 @@
3939
coeff_sp, coeff_ell, m_to_s_stat, number_of_fCT, number_of_SSRCT, compositions_order)
4040
from sage.combinat.partition import Partition
4141
from sage.combinat.permutation import Permutations
42+
from sage.combinat.sf.sf import SymmetricFunctions
4243
from sage.matrix.constructor import matrix
4344
from sage.matrix.matrix_space import MatrixSpace
44-
from sage.combinat.sf.sf import SymmetricFunctions
45+
from sage.sets.family import Family
4546

4647

4748
class NonCommutativeSymmetricFunctions(UniqueRepresentation, Parent):
@@ -2031,7 +2032,7 @@ def super_categories(self):
20312032
class ParentMethods:
20322033

20332034
@cached_method
2034-
def algebra_generators(self):
2035+
def algebra_generators(self) -> Family:
20352036
"""
20362037
Return the algebra generators of a given multiplicative basis of
20372038
non-commutative symmetric functions.
@@ -2047,9 +2048,9 @@ def algebra_generators(self):
20472048
sage: f[1], f[2], f[3]
20482049
(Psi[1], Psi[2], Psi[3])
20492050
"""
2050-
from sage.sets.family import Family
20512051
from sage.sets.positive_integers import PositiveIntegers
2052-
return Family(PositiveIntegers(), lambda i: self.monomial(self._indices([i])))
2052+
return Family(PositiveIntegers(),
2053+
lambda i: self.monomial(self._indices([i])))
20532054

20542055
def product_on_basis(self, composition1, composition2):
20552056
"""

src/sage/combinat/symmetric_group_algebra.py

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@
2222
Permutations,
2323
from_permutation_group_element,
2424
)
25-
from sage.combinat.permutation_cython import left_action_same_n, right_action_same_n
25+
from sage.combinat.permutation_cython import (left_action_same_n,
26+
right_action_same_n)
2627
from sage.combinat.skew_tableau import SkewTableau
2728
from sage.combinat.tableau import (
2829
StandardTableaux,
@@ -38,6 +39,7 @@
3839
from sage.modules.free_module_element import vector
3940
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
4041
from sage.rings.rational_field import QQ
42+
from sage.sets.family import Family
4143

4244
lazy_import('sage.groups.perm_gps.permgroup_element',
4345
'PermutationGroupElement')
@@ -244,7 +246,7 @@ def SymmetricGroupAlgebra(R, W, category=None):
244246

245247
class SymmetricGroupAlgebra_n(GroupAlgebra_class):
246248

247-
def __init__(self, R, W, category):
249+
def __init__(self, R, W, category) -> None:
248250
"""
249251
TESTS::
250252
@@ -1355,10 +1357,9 @@ def ladder_idempotent(self, la):
13551357
return Elad * eprod
13561358

13571359
@cached_method
1358-
def algebra_generators(self):
1360+
def algebra_generators(self) -> Family:
13591361
r"""
1360-
Return generators of this group algebra (as algebra) as a
1361-
list of permutations.
1362+
Return generators of this group algebra (as algebra).
13621363
13631364
The generators used for the group algebra of `S_n` are the
13641365
transposition `(2, 1)` and the `n`-cycle `(1, 2, \ldots, n)`,
@@ -1386,7 +1387,6 @@ def algebra_generators(self):
13861387
sage: M = C.module_morphism(lambda x: S3.zero(), codomain=S3)
13871388
sage: M.register_as_coercion()
13881389
"""
1389-
from sage.sets.family import Family
13901390
if self.n <= 1:
13911391
return Family([])
13921392
a = list(range(1, self.n + 1))
@@ -3574,7 +3574,7 @@ def _element_constructor_(self, x):
35743574

35753575
class HeckeAlgebraSymmetricGroup_t(HeckeAlgebraSymmetricGroup_generic):
35763576

3577-
def __init__(self, R, n, q=None):
3577+
def __init__(self, R, n, q=None) -> None:
35783578
"""
35793579
TESTS::
35803580
@@ -3686,16 +3686,16 @@ def t(self, i):
36863686
list(range(i + 2, self.n + 1))))
36873687
# The permutation here is simply the transposition (i, i+1).
36883688

3689-
def algebra_generators(self):
3689+
def algebra_generators(self) -> tuple:
36903690
"""
36913691
Return the generators of the algebra.
36923692
36933693
EXAMPLES::
36943694
36953695
sage: HeckeAlgebraSymmetricGroupT(QQ,3).algebra_generators()
3696-
[T[2, 1, 3], T[1, 3, 2]]
3696+
(T[2, 1, 3], T[1, 3, 2])
36973697
"""
3698-
return [self.t(i) for i in range(1, self.n)]
3698+
return tuple(self.t(i) for i in range(1, self.n))
36993699

37003700
def jucys_murphy(self, k):
37013701
r"""

src/sage/groups/raag.py

Lines changed: 24 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -22,22 +22,22 @@
2222
# (at your option) any later version.
2323
# https://www.gnu.org/licenses/
2424
# ****************************************************************************
25+
from sage.algebras.clifford_algebra_element import CohomologyRAAGElement
26+
from sage.categories.algebras_with_basis import AlgebrasWithBasis
27+
from sage.categories.fields import Fields
28+
from sage.categories.groups import Groups
29+
from sage.combinat.free_module import CombinatorialFreeModule
30+
from sage.combinat.root_system.coxeter_group import CoxeterGroup
31+
from sage.combinat.root_system.coxeter_matrix import CoxeterMatrix
32+
from sage.graphs.graph import Graph
33+
from sage.groups.artin import ArtinGroup, ArtinGroupElement
34+
from sage.groups.finitely_presented import (FinitelyPresentedGroup,
35+
FinitelyPresentedGroupElement)
36+
from sage.groups.free_group import FreeGroup
2537
from sage.libs.gap.element import GapElement
26-
2738
from sage.misc.cachefunc import cached_method
39+
from sage.sets.family import Family
2840
from sage.structure.richcmp import richcmp
29-
from sage.groups.finitely_presented import FinitelyPresentedGroup, FinitelyPresentedGroupElement
30-
from sage.groups.free_group import FreeGroup
31-
from sage.groups.artin import ArtinGroup, ArtinGroupElement
32-
from sage.graphs.graph import Graph
33-
from sage.combinat.root_system.coxeter_matrix import CoxeterMatrix
34-
from sage.combinat.root_system.coxeter_group import CoxeterGroup
35-
36-
from sage.combinat.free_module import CombinatorialFreeModule
37-
from sage.categories.fields import Fields
38-
from sage.categories.groups import Groups
39-
from sage.categories.algebras_with_basis import AlgebrasWithBasis
40-
from sage.algebras.clifford_algebra_element import CohomologyRAAGElement
4141
from sage.typeset.ascii_art import ascii_art
4242
from sage.typeset.unicode_art import unicode_art
4343

@@ -303,7 +303,7 @@ def _element_constructor_(self, x):
303303
1
304304
"""
305305
if isinstance(x, RightAngledArtinGroup.Element):
306-
raise ValueError("there is no coercion from {} into {}".format(x.parent(), self))
306+
raise ValueError(f"there is no coercion from {x.parent()} into {self}")
307307
if x == 1:
308308
return self.one()
309309
verts = self._graph.vertices(sort=True)
@@ -782,10 +782,11 @@ def gen(self, i):
782782
sage: H.gen(1)
783783
e1
784784
"""
785-
return self._from_dict({(i,): self.base_ring().one()}, remove_zeros=False)
785+
return self._from_dict({(i,): self.base_ring().one()},
786+
remove_zeros=False)
786787

787788
@cached_method
788-
def one_basis(self):
789+
def one_basis(self) -> tuple:
789790
"""
790791
Return the basis element indexing `1` of ``self``.
791792
@@ -800,7 +801,7 @@ def one_basis(self):
800801
return ()
801802

802803
@cached_method
803-
def algebra_generators(self):
804+
def algebra_generators(self) -> Family:
804805
"""
805806
Return the algebra generators of ``self``.
806807
@@ -811,25 +812,17 @@ def algebra_generators(self):
811812
sage: H = A.cohomology()
812813
sage: H.algebra_generators()
813814
Finite family {0: e0, 1: e1, 2: e2, 3: e3}
815+
816+
TESTS::
817+
818+
sage: H.gens()
819+
Finite family {0: e0, 1: e1, 2: e2, 3: e3}
814820
"""
815821
V = self._group._graph.vertices(True)
816822
d = {x: self.gen(i) for i, x in enumerate(V)}
817-
from sage.sets.family import Family
818823
return Family(V, lambda x: d[x])
819824

820-
def gens(self) -> tuple:
821-
r"""
822-
Return the generators of ``self`` (as an algebra).
823-
824-
EXAMPLES::
825-
826-
sage: C4 = graphs.CycleGraph(4)
827-
sage: A = groups.misc.RightAngledArtin(C4)
828-
sage: H = A.cohomology()
829-
sage: H.gens()
830-
(e0, e1, e2, e3)
831-
"""
832-
return tuple(self.algebra_generators())
825+
gens = algebra_generators
833826

834827
def ngens(self):
835828
"""

0 commit comments

Comments
 (0)