@@ -336,7 +336,7 @@ def atoms(self):
336336 return []
337337 return self .upper_covers (self .bottom ())
338338
339- def submeetsemilattice (self , elms ):
339+ def submeetsemilattice (self , elms , ** kwds ):
340340 r"""
341341 Return the smallest meet-subsemilattice containing elements on the given list.
342342
@@ -376,9 +376,9 @@ def submeetsemilattice(self, elms):
376376 gens_remaining .add (self .meet (x , g ))
377377 current_set .add (g )
378378
379- return MeetSemilattice (self .subposet (current_set ))
379+ return MeetSemilattice (self .subposet (current_set ), ** kwds )
380380
381- def subjoinsemilattice (self , elms ):
381+ def subjoinsemilattice (self , elms , ** kwds ):
382382 r"""
383383 Return the smallest join-subsemilattice containing elements on the given list.
384384
@@ -418,7 +418,7 @@ def subjoinsemilattice(self, elms):
418418 gens_remaining .add (self .join (x , g ))
419419 current_set .add (g )
420420
421- return JoinSemilattice (self .subposet (current_set ))
421+ return JoinSemilattice (self .subposet (current_set ), ** kwds )
422422
423423 def pseudocomplement (self , element ):
424424 r"""
@@ -1124,6 +1124,9 @@ def is_stone(self, certificate=False) -> bool | tuple:
11241124 ``(False, e)`` such that `e^* \vee e^{**} \neq \top`.
11251125 If ``certificate=False`` return ``True`` or ``False``.
11261126
1127+ If the lattice is not distributive, the result is either
1128+ ``(False, None)`` or ``False``.
1129+
11271130 EXAMPLES:
11281131
11291132 Divisor lattices are canonical example::
@@ -1155,7 +1158,7 @@ def is_stone(self, certificate=False) -> bool | tuple:
11551158 # is extended to directed, use that; see comment below.
11561159
11571160 if not self .is_distributive ():
1158- raise ValueError ( "the lattice is not distributive" )
1161+ return ( False , None ) if certificate else False
11591162
11601163 from sage .arith .misc import factor
11611164 ok = (True , None ) if certificate else True
@@ -2264,7 +2267,8 @@ def skeleton(self):
22642267 return self
22652268 elms = [self ._vertex_to_element (v ) for v in
22662269 self ._hasse_diagram .skeleton ()]
2267- return LatticePoset (self .subposet (elms ))
2270+ return LatticePoset (self .subposet (elms ),
2271+ category = FiniteLatticePosets ().Stone ())
22682272
22692273 def is_orthocomplemented (self , unique = False ) -> bool :
22702274 """
@@ -3150,7 +3154,7 @@ def is_vertically_decomposable(self, certificate=False) -> bool | tuple:
31503154 return (True , self ._vertex_to_element (e ))
31513155 return True
31523156
3153- def sublattice (self , elms ):
3157+ def sublattice (self , elms , ** kwds ):
31543158 r"""
31553159 Return the smallest sublattice containing elements on the given list.
31563160
@@ -3184,7 +3188,7 @@ def sublattice(self, elms):
31843188 gens_remaining .add (self .meet (x , g ))
31853189 current_set .add (g )
31863190
3187- return LatticePoset (self .subposet (current_set ))
3191+ return LatticePoset (self .subposet (current_set ), ** kwds )
31883192
31893193 def is_sublattice (self , other ) -> bool :
31903194 """
@@ -3682,7 +3686,8 @@ def center(self):
36823686 """
36833687 neutrals = self .neutral_elements ()
36843688 comps = self .complements ()
3685- return self .sublattice ([e for e in neutrals if e in comps ])
3689+ return self .sublattice ([e for e in neutrals if e in comps ],
3690+ category = FiniteLatticePosets ().Stone ())
36863691
36873692 def is_dismantlable (self , certificate = False ) -> bool | tuple :
36883693 r"""
0 commit comments