Skip to content

Commit 927ca2b

Browse files
Bruno-TTdimpase
authored andcommitted
invariants are now (probably) linearly independent
1 parent 1ca4a47 commit 927ca2b

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

src/sage/groups/matrix_gps/finitely_generated_gap.py

Lines changed: 9 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,15 @@ 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, R):
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, inv, R):
909+
if len(inv)==0: return True
910+
try:
911+
return PolynomialSequence(R, inv).coefficient_matrix()[0].rank() != PolynomialSequence(R, list(inv)+[F]).coefficient_matrix()[0].rank()
912+
except ValueError:
913+
return True

0 commit comments

Comments
 (0)