{α : Type u} →
  [toDistribLattice : DistribLattice α] →
    [toSDiff : SDiff α] →
      [toBot : Bot α] →
        (∀ (a b : α), a ⊓ b ⊔ a \ b = a) → (∀ (a b : α), a ⊓ b ⊓ a \ b = ⊥) → GeneralizedBooleanAlgebra α