Additional Complete Lattice Operations #
Extensions to Lean.Order.CompleteLattice providing additional operations
needed for program verification.
Top element of a complete lattice (supremum of all elements)
Equations
- Lean.Order.top = Lean.Order.CompleteLattice.sup fun (x : α) => True
Instances For
Top element of a complete lattice (supremum of all elements)
Equations
- Lean.Order.«term⊤» = Lean.ParserDescr.node `Lean.Order.«term⊤» 1024 (Lean.ParserDescr.symbol "⊤")
Instances For
A complete lattice is a chain-complete partial order.
Equations
- Lean.Order.instCCPO_std = { toPartialOrder := inst✝.toPartialOrder, has_csup := ⋯ }
Instances For
Binary meet (infimum)
Equations
- Lean.Order.meet x y = Lean.Order.inf fun (z : α) => z = x ∨ z = y
Instances For
Binary meet (infimum)
Equations
- Lean.Order.«term_⊓_» = Lean.ParserDescr.trailingNode `Lean.Order.«term_⊓_» 70 70 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊓ ") (Lean.ParserDescr.cat `term 71))
Instances For
Binary join (supremum)
Equations
- Lean.Order.join x y = Lean.Order.CompleteLattice.sup fun (z : α) => z = x ∨ z = y
Instances For
Binary join (supremum)
Equations
- Lean.Order.«term_⊔_» = Lean.ParserDescr.trailingNode `Lean.Order.«term_⊔_» 65 65 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ⊔ ") (Lean.ParserDescr.cat `term 66))
Instances For
Indexed infimum
Equations
- Lean.Order.iInf f = Lean.Order.inf fun (x : α) => ∃ (i : ι), f i = x
Instances For
Pointwise characterization of indexed infimum on function lattices.
Indexed supremum
Equations
- Lean.Order.iSup f = Lean.Order.CompleteLattice.sup fun (x : α) => ∃ (i : ι), f i = x
Instances For
Pointwise characterization of indexed supremum on function lattices.
Pointwise characterization of CompleteLattice.sup on function lattices:
(sup c) s = sup (fun y => ∃ f, c f ∧ f s = y).
Pointwise characterization of binary meet on function lattices.
Pointwise characterization of binary join on function lattices.
Pointwise characterization of ⊤ on a function lattice.
Pointwise characterization of ⊥ on a function lattice.
Prop Embedding into Partial Order #
Embedding propositions into a partial order with top and bottom.
CompleteLattice instance for Prop #
We define a CompleteLattice structure on Prop where:
- rel is implication (→)
- sup is existential quantification over the predicate
Equations
- One or more equations did not get rendered due to their size.
Equations
- Lean.Order.instCompleteLatticeProp_std = { toPartialOrder := Lean.Order.instPartialOrderProp_std, has_sup := Lean.Order.instCompleteLatticeProp_std._proof_1 }
Embedding of propositions into an CompleteLattice type. ⌜p⌝ embeds p : Prop as ⊤ if p holds
and ⊥ otherwise.
Equations
Instances For
Embedding of propositions into an CompleteLattice type. ⌜p⌝ embeds p : Prop as ⊤ if p holds
and ⊥ otherwise.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Pointwise characterization of CompleteLattice.ofProp on a function lattice.
x ⊑ ⌜p⌝ whenever p holds.
⌜p⌝ ⊑ rhs reduces to assuming p and proving ⊤ ⊑ rhs.
Entailment between functions is pointwise.
Entailment between functions follows from pointwise entailment.
⊤ ⊑ g for a function g follows from pointwise ⊤ ⊑ g s.
The bottom element of the Prop lattice is False. See top_prop_eq for why this is not
@[simp].
Embedding a proposition into the Prop lattice (⌜p⌝) is the proposition itself. See
top_prop_eq for why this is not @[simp].