Skip to content

Commit ca8b598

Browse files
committed
introduce the alias "is_congruence_uniform" in lattices
1 parent dc99dc8 commit ca8b598

File tree

2 files changed

+32
-4
lines changed

2 files changed

+32
-4
lines changed

src/doc/en/reference/references/index.rst

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2099,6 +2099,10 @@ REFERENCES:
20992099
Adv. Math. ***177** no. 1 (2002) pp. 115-179.
21002100
:arxiv:`math/0203127`.
21012101
2102+
.. [Day1979] Alan Day, *Characterizations of Finite Lattices that are
2103+
Bounded-Homomorphic Images or Sublattices of Free Lattices*,
2104+
Canadian Journal of Mathematics 31 (1979), 69-78
2105+
21022106
.. [DB1996] K. Duggal, A. Bejancu,
21032107
*Lightlike Submanifolds of Semi-Riemannian Manifolds and Applications*,
21042108
Mathematics and Its Applications, 1996.

src/sage/combinat/posets/lattices.py

Lines changed: 28 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1292,7 +1292,8 @@ def is_semidistributive(self):
12921292
12931293
- Weaker properties: :meth:`is_join_semidistributive`,
12941294
:meth:`is_meet_semidistributive`
1295-
- Stronger properties: :meth:`is_distributive`
1295+
- Stronger properties: :meth:`is_distributive`,
1296+
:meth:`is_congruence_uniform`
12961297
12971298
TESTS::
12981299
@@ -3549,7 +3550,7 @@ def day_doubling(self, S):
35493550
True
35503551
"""
35513552
# Rationale for naming of elements: a lattice can have
3552-
# elements 1, (1, 1), (1, (1, 1)) and so on. We can't just
3553+
# elements 1, (1, 1), (1, (1, 1)) and so on. We cannot just
35533554
# make a copy of S with elements (s, 1).
35543555

35553556
# The construction could be defined for any convex
@@ -3954,7 +3955,7 @@ def is_sublattice_dismantlable(self):
39543955
39553956
Add a certificate-option.
39563957
"""
3957-
# Todo: This can be made much faster, if we don't regenerate meet- and
3958+
# Todo: This can be made much faster, if we do not regenerate meet- and
39583959
# join-matrices every time, but instead remove some rows and columns
39593960
# from them.
39603961

@@ -4270,7 +4271,7 @@ def is_constructible_by_doublings(self, type) -> bool:
42704271
42714272
The congruence lattice of this lattice has maximal chains satisfying the needed
42724273
property, but also maximal chains not satisfying that; this shows that the code
4273-
can't be optimized to test just some maximal chain::
4274+
cannot be optimized to test just some maximal chain::
42744275
42754276
sage: L = LatticePoset(DiGraph('QSO?I?_?_GBG??_??a???@?K??A??B???C??s??G??I??@??A??@???'))
42764277
sage: L.is_constructible_by_doublings('convex')
@@ -4343,6 +4344,29 @@ def splitting_depth_2(a, b):
43434344
todo.append(e_up)
43444345
return False
43454346

4347+
def is_congruence_uniform(self) -> bool:
4348+
"""
4349+
Return whether ``self`` is congruence uniform.
4350+
4351+
This is equivalent to being constructible by doubling intervals.
4352+
4353+
.. SEEALSO:: :meth:`is_constructible_by_doublings`
4354+
4355+
EXAMPLES::
4356+
4357+
sage: P = posets.PentagonPoset()
4358+
sage: P.is_congruence_uniform()
4359+
True
4360+
sage: P = posets.DiamondPoset(5)
4361+
sage: P.is_congruence_uniform()
4362+
False
4363+
4364+
REFERENCES:
4365+
4366+
- [Day1979]_
4367+
"""
4368+
return self.is_constructible_by_doublings(type="interval")
4369+
43464370
def is_isoform(self, certificate=False):
43474371
"""
43484372
Return ``True`` if the lattice is isoform and ``False`` otherwise.

0 commit comments

Comments
 (0)