Zulip Chat Archive

Stream: mathlib4

Topic: GeneralizedBooleanAlgebra and ConditionallyComplete diamond


Robert Maxton (Oct 06 2025 at 23:19):

import Mathlib.Order.BooleanAlgebra.Basic
import Mathlib.Logic.Pairwise
import Mathlib.Order.ConditionallyCompleteLattice.Defs

example {α ι : Type*} [GeneralizedBooleanAlgebra α] [ConditionallyCompleteLattice α]
    (f : ι  α) (hf : Pairwise (Function.onFun Disjoint f)) -- failed to synthesize OrderBot α
    (i : ι ) : True := by trivial

I'm looking for a spelling that lets me work with relative complements and indexed suprema at the same time; what's the best way to do that? For right now I'm manually providing GeneralizedBooleanAlgebra.toOrderBot as an explicit argument to Disjoint, but I imagine that's just buying trouble...

Aaron Liu (Oct 06 2025 at 23:33):

yeah that's a diamond

Aaron Liu (Oct 06 2025 at 23:33):

don't have the diamond

Robert Maxton (Oct 06 2025 at 23:33):

yeah, but how :p

Aaron Liu (Oct 06 2025 at 23:33):

do you have an order top?

Robert Maxton (Oct 06 2025 at 23:34):

... I could make that assumption, I suppose, though I'd kind of prefer not to.
More to the point, tho, that only kicks the can down the road: BooleanAlgebra and CompleteLattice still give me diamond problems later.

Aaron Liu (Oct 06 2025 at 23:34):

I'm thinking about docs#Order.Coframe

Robert Maxton (Oct 06 2025 at 23:35):

mmmm

Aaron Liu (Oct 06 2025 at 23:36):

I don't think the specific case of conditionally complete order + relative complements is in mathlib

Aaron Liu (Oct 06 2025 at 23:36):

without a top

Robert Maxton (Oct 06 2025 at 23:36):

bleh.
Alright, I'll just stick with CompleteBooleanAlgebra now that I've found it

Aaron Liu (Oct 06 2025 at 23:36):

but with a top I think this might be exactly docs#Order.Coframe

Robert Maxton (Oct 06 2025 at 23:36):

hmm

Robert Maxton (Oct 06 2025 at 23:37):

Coframe looks approximately correct

Robert Maxton (Oct 06 2025 at 23:37):

I'll give it a shot and see what happens
Thanks!

Yury G. Kudryashov (Oct 07 2025 at 01:53):

Another option is to define a class (in your project) that extends both.


Last updated: Dec 20 2025 at 21:32 UTC