Documentation

Loom.LatticeExt

Additional Complete Lattice Operations #

Extensions to Lean.Order.CompleteLattice providing additional operations needed for program verification.

noncomputable def Lean.Order.latticeBot {α : Type u} [CompleteLattice α] :
α

Bottom element of a complete lattice (infimum of all elements)

Instances For

    Prop Embedding into Partial Order #

    Embedding propositions into a partial order with top and bottom.

    noncomputable def Lean.Order.CompleteLattice.pure {l : Type u} [CompleteLattice l] :
    Propl

    Pure embedding of propositions into a complete lattice.

    Instances For

      Pure embedding of propositions into a complete lattice.

      Instances For
        theorem Lean.Order.LE.pure_imp {l : Type u} [CompleteLattice l] (p₁ p₂ : Prop) :
        theorem Lean.Order.le_pure {l : Type u} [CompleteLattice l] (x : l) (p : Prop) :

        Proving pre ⊑ ⌜p⌝ reduces to proving p.

        theorem Lean.Order.top_fun_apply {σ : Type v} {β : Type w} [CompleteLattice β] (s : σ) :

        Pointwise characterization of ⌜p⌝ on function lattices: (⌜p⌝ : σ → β) s = (⌜p⌝ : β).

        @[simp]
        @[simp]
        @[simp]

        CompleteLattice instance for Prop #

        We define a CompleteLattice structure on Prop where:

        theorem Lean.Order.meet_pre_intro (a b c : Prop) :
        (aPartialOrder.rel b c)PartialOrder.rel (meet a b) c

        Intro the left component of a meet precondition: a ⊓ b ⊑ c becomes a → b ⊑ c.

        theorem Lean.Order.meet_pre_intro' (a b c : Prop) :
        (bPartialOrder.rel a c)PartialOrder.rel (meet a b) c

        Intro the right component of a meet precondition: a ⊓ b ⊑ c becomes a → b ⊑ c.

        Eliminate True from the left of a meet precondition.