Lean4
instance completeAtomicBooleanAlgebra : CompleteAtomicBooleanAlgebra (Digraph V) :=
{ Digraph.distribLattice with
le := (· ≤ ·)
sup := (· ⊔ ·)
inf := (· ⊓ ·)
compl := HasCompl.compl
sdiff := (· \ ·)
top := Digraph.completeDigraph V
bot := Digraph.emptyDigraph V
le_top := fun _ _ _ _ ↦ trivial
bot_le := fun _ _ _ h ↦ h.elim
sdiff_eq := fun _ _ ↦ rfl
inf_compl_le_bot := fun _ _ _ h ↦ absurd h.1 h.2
top_le_sup_compl := fun G v w _ ↦ by tauto
sSup := sSup
le_sSup := fun _ G hG _ _ hab ↦ ⟨G, hG, hab⟩
sSup_le := fun s G hG a b ↦ by
rintro ⟨H, hH, hab⟩
exact hG _ hH hab
sInf := sInf
sInf_le := fun _ _ hG _ _ hab ↦ hab hG
le_sInf := fun _ _ hG _ _ hab ↦ fun _ hH ↦ hG _ hH hab
iInf_iSup_eq := fun f ↦ by ext; simp [Classical.skolem] }