Complete lattice algebra #
The laws of ⊤, ⊥, ⊓, ⊔, ⨅ and ⨆, their pointwise characterizations on function
lattices, and the laws of the Prop lattice.
Pointwise characterization of indexed infimum on function lattices.
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.
Entailment on a function lattice is pointwise. β is recoverable from the operands' types, so
unlike a carrier-only parameter this is a usable @[grind =] trigger; it lets grind push ⊑
through a state argument down to the base lattice.
Introduction rule for a ∀ on the RHS of a Prop entailment.
Entailment between functions is pointwise.
Entailment between functions follows from pointwise entailment.
⊤ ⊑ g for a function g follows from pointwise ⊤ ⊑ g s.
Derived laws of CompleteLattice #
Lattice algebra derived from the laws of CompleteLattice: monotonicity of the connectives, the
monoid laws of ⊓ and ⊔ with their units ⊤ and ⊥, and the pointwise unfoldings of ⊑ on
function lattices.
Connectives #
Monotonicity #
Boolean algebra #
Cancel a redundant ⊓ ⊤ on the left of an entailment.
Miscellaneous #
Working with entailment #
Pointwise unfoldings of ⊑ on function lattices #
Fixed-arity instances of le_iff_forall_le for nested function lattices, stated separately per
arity so that simp and grind can apply them. Each is definitional via the function-space
PartialOrder instance.