Skip to content

Commit 2266a35

Browse files
committed
further details in posets
1 parent b34ac5f commit 2266a35

File tree

4 files changed

+24
-15
lines changed

4 files changed

+24
-15
lines changed

src/sage/combinat/posets/hasse_diagram.py

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1109,11 +1109,11 @@ def moebius_function_matrix(self, algorithm='cython'):
11091109
m[(i, k)] = -ZZ.sum(m[(j, k)]
11101110
for j in available
11111111
if k in greater_than[j])
1112-
M = matrix(ZZ, n, n, m, sparse=True)
1112+
M = matrix(ZZ, n, n, m, sparse=True) # noqa: F821
11131113
elif algorithm == "matrix":
11141114
M = self.lequal_matrix().inverse_of_unit()
11151115
elif algorithm == "cython":
1116-
M = moebius_matrix_fast(self._leq_storage)
1116+
M = moebius_matrix_fast(self._leq_storage) # noqa: F821
11171117
else:
11181118
raise ValueError("unknown algorithm")
11191119
self._moebius_function_matrix = M
@@ -1187,7 +1187,7 @@ def coxeter_transformation(self, algorithm='cython'):
11871187
if algorithm == 'matrix':
11881188
return - self.lequal_matrix() * self.moebius_function_matrix().transpose()
11891189
elif algorithm == 'cython':
1190-
return coxeter_matrix_fast(self._leq_storage)
1190+
return coxeter_matrix_fast(self._leq_storage) # noqa: F821
11911191
else:
11921192
raise ValueError("unknown algorithm")
11931193

@@ -1324,11 +1324,11 @@ def _leq_matrix_boolean(self):
13241324
Finite Field of size 2
13251325
"""
13261326
n = self.order()
1327-
R = GF(2)
1327+
R = GF(2) # noqa: F821
13281328
one = R.one()
13291329
greater_than = self._leq_storage
13301330
D = {(i, j): one for i in range(n) for j in greater_than[i]}
1331-
M = matrix(R, n, n, D, sparse=True)
1331+
M = matrix(R, n, n, D, sparse=True) # noqa: F821
13321332
M.set_immutable()
13331333
return M
13341334

@@ -1359,7 +1359,7 @@ def _leq_matrix(self):
13591359
n = self.order()
13601360
greater_than = self._leq_storage
13611361
D = {(i, j): 1 for i in range(n) for j in greater_than[i]}
1362-
return matrix(ZZ, n, n, D, sparse=True, immutable=True)
1362+
return matrix(ZZ, n, n, D, sparse=True, immutable=True) # noqa: F821
13631363

13641364
def lequal_matrix(self, boolean=False):
13651365
r"""
@@ -1544,7 +1544,7 @@ def _meet(self):
15441544
self._meet_semilattice_failure = ()
15451545
n = self.cardinality()
15461546
if n == 0:
1547-
return matrix(0)
1547+
return matrix(0) # noqa: F821
15481548
meet = [[-1 for x in range(n)] for x in range(n)]
15491549
lc = [self.neighbors_in(x) for x in range(n)] # Lc = lower covers
15501550

@@ -1564,7 +1564,7 @@ def _meet(self):
15641564
meet[y][x] = q
15651565
if q == -1:
15661566
self._meet_semilattice_failure += ((x, y),)
1567-
return matrix(ZZ, meet)
1567+
return matrix(ZZ, meet) # noqa: F821
15681568

15691569
def meet_matrix(self):
15701570
r"""
@@ -1708,7 +1708,7 @@ def _join(self):
17081708
self._join_semilattice_failure = ()
17091709
n = self.cardinality()
17101710
if n == 0:
1711-
return matrix(0)
1711+
return matrix(0) # noqa: F821
17121712
join = [[-1 for x in range(n)] for x in range(n)]
17131713
uc = [self.neighbors_out(x) for x in range(n)] # uc = upper covers
17141714

@@ -1729,7 +1729,7 @@ def _join(self):
17291729
if q == -1:
17301730
self._join_semilattice_failure += ((x, y),)
17311731

1732-
return matrix(ZZ, join)
1732+
return matrix(ZZ, join) # noqa: F821
17331733

17341734
def join_matrix(self):
17351735
r"""
@@ -3143,7 +3143,7 @@ def atoms_of_congruence_lattice(self):
31433143

31443144
return min_congruences
31453145

3146-
def congruence(self, parts, start=None, stop_pairs=[]):
3146+
def congruence(self, parts, start=None, stop_pairs=None):
31473147
"""
31483148
Return the congruence ``start`` "extended" by ``parts``.
31493149
@@ -3207,6 +3207,9 @@ def congruence(self, parts, start=None, stop_pairs=[]):
32073207
from sage.sets.disjoint_set import DisjointSet
32083208
from copy import copy
32093209

3210+
if stop_pairs is None:
3211+
stop_pairs = []
3212+
32103213
n = self.order()
32113214
mt = self.meet_matrix()
32123215
jn = self.join_matrix()

src/sage/combinat/posets/lattices.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2003,7 +2003,7 @@ def join(L):
20032003
return (B, [self._vertex_to_element(e) for e in A])
20042004
else:
20052005
return B
2006-
assert False, "BUG: breadth() in lattices.py have an error."
2006+
raise RuntimeError("BUG: breadth() in lattices.py have an error")
20072007

20082008
def complements(self, element=None):
20092009
r"""

src/sage/combinat/posets/poset_examples.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1550,7 +1550,7 @@ def YoungFibonacci(n):
15501550

15511551
covers = []
15521552
current_level = ['']
1553-
for i in range(1, n + 1):
1553+
for _ in range(1, n + 1):
15541554
new_level = set()
15551555
for low in current_level:
15561556
ind = low.find('1')

src/sage/combinat/posets/posets.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4715,7 +4715,7 @@ def isomorphic_subposets(self, other):
47154715
return [self.subposet([self._list[i] for i in x]) for x in sorted({frozenset(y) for y in L})]
47164716

47174717
# Caveat: list is overridden by the method list above!!!
4718-
def antichains(self, element_constructor=type([])):
4718+
def antichains(self, element_constructor=None):
47194719
"""
47204720
Return the antichains of the poset.
47214721
@@ -4779,6 +4779,9 @@ def antichains(self, element_constructor=type([])):
47794779
"""
47804780
vertex_to_element = self._vertex_to_element
47814781

4782+
if element_constructor is None:
4783+
element_constructor = list
4784+
47824785
def f(antichain):
47834786
return element_constructor(vertex_to_element(x) for x in antichain)
47844787
result = self._hasse_diagram.antichains(element_class=f)
@@ -4921,7 +4924,7 @@ def dilworth_decomposition(self):
49214924
chains.append(chain)
49224925
return chains
49234926

4924-
def chains(self, element_constructor=type([]), exclude=None):
4927+
def chains(self, element_constructor=None, exclude=None):
49254928
"""
49264929
Return the chains of the poset.
49274930
@@ -4969,6 +4972,9 @@ def chains(self, element_constructor=type([]), exclude=None):
49694972
49704973
.. SEEALSO:: :meth:`maximal_chains`, :meth:`antichains`
49714974
"""
4975+
if element_constructor is None:
4976+
element_constructor = list
4977+
49724978
if exclude is not None:
49734979
exclude = [self._element_to_vertex(x) for x in exclude]
49744980
result = self._hasse_diagram.chains(element_class=element_constructor,

0 commit comments

Comments
 (0)