Skip to content

Commit e237c66

Browse files
author
Release Manager
committed
gh-35899: invariants are now (probably) linearly independent fixes #35684 please read issue for more information URL: #35899 Reported by: Bruno-TT Reviewer(s):
2 parents 0eaccb0 + 4bdf675 commit e237c66

File tree

1 file changed

+17
-2
lines changed

1 file changed

+17
-2
lines changed

src/sage/groups/matrix_gps/finitely_generated_gap.py

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
from sage.rings.polynomial.polynomial_ring_constructor import PolynomialRing
3939
from sage.rings.power_series_ring import PowerSeriesRing
4040
from sage.rings.qqbar import QQbar
41+
from sage.rings.polynomial.multi_polynomial_sequence import PolynomialSequence
4142

4243

4344
class FinitelyGeneratedMatrixGroup_gap(MatrixGroup_gap):
@@ -898,9 +899,23 @@ def invariants_of_degree(self, deg, chi=None, R=None):
898899
inv = set()
899900
for e in IntegerVectors(deg, D):
900901
F = self.reynolds_operator(R.monomial(*e), chi=chi)
901-
if not F.is_zero():
902-
F = F / F.lc()
902+
if not F.is_zero() and _new_invariant_is_linearly_independent((F:=F/F.lc()), inv):
903903
inv.add(F)
904904
if len(inv) == ms[deg]:
905905
break
906906
return list(inv)
907+
908+
def _new_invariant_is_linearly_independent(F, invariants):
909+
"""
910+
EXAMPLES ::
911+
sage: gens = [matrix(QQ, [[-1,1],[-1,0]]), matrix(QQ, [[0,1],[1,0]])]
912+
sage: G = MatrixGroup(gens)
913+
sage: s = Sequence(G.invariants_of_degree(14))
914+
sage: s.coefficient_matrix()[0].rank()
915+
3
916+
sage: len(s)
917+
3
918+
"""
919+
if len(invariants)==0:
920+
return True
921+
return PolynomialSequence(invariants).coefficient_matrix()[0].rank() != PolynomialSequence(list(invariants)+[F]).coefficient_matrix()[0].rank()

0 commit comments

Comments
 (0)