Supremum-preserving maps and their upper adjoints #
A supremum-preserving map on a complete lattice is a lower adjoint. Its upper adjoint is the
implication belonging to it: Heyting ⇨ for the lattice meet, a magic wand for a separating
conjunction.
f : α → α preserves suprema if it distributes over arbitrary suprema:
f (sup s) = sup { f x | x ∈ s }. Equivalently f is a lower adjoint, so it has an upper adjoint
PreservesSup.upperAdjoint f.
A frame operator acts by a supremum-preserving map for each resource r: the lattice meet
(a ⊓ ·),
or a cost combinator (costConj r) for a counter resource. The upper adjoint is the corresponding
implication: Heyting ⇨ for the meet, a magic wand for separating conjunction.
- map_sup (s : α → Prop) : f (CompleteLattice.sup s) = CompleteLattice.sup fun (y : α) => ∃ (x : α), s x ∧ y = f x
fpreserves joins.
Instances
mk of the componentwise least upper bounds is the least upper bound on a product.
A product lattice preserves suprema componentwise: meets, least upper bounds and the order all act on the two components separately.
The first component of a meet is the meet of the first components.
The second component of a meet is the meet of the second components.
The first component of the top element is the top element. Propositional (not
definitional), because ⊤ is a supremum, not a constructor application.
The second component of the top element is the top element. Propositional (not
definitional), because ⊤ is a supremum, not a constructor application.
A product lattice preserves suprema at the two components.
Unit carries a single value, so every map on it preserves suprema.
The upper adjoint of f: the join of all x with f x ⊑ b. For f = (a ⊓ ·) this is Heyting
implication a ⇨ ·.
Equations
- Lean.Order.PreservesSup.upperAdjoint f b = Lean.Order.CompleteLattice.sup fun (x : α) => Lean.Order.PartialOrder.rel (f x) b
Instances For
upperAdjoint f b is the least upper bound of {x | f x ⊑ b} by definition.
Unit, free from the definition of upperAdjoint: f x ⊑ b → x ⊑ upperAdjoint f b. Needs only
CompleteLattice.
Counit (modus ponens), from supremum preservation: f (upperAdjoint f b) ⊑ b.
Monotonicity of a supremum-preserving f, derived from supremum preservation.
A right adjoint is monotone.
Frame elimination: a join on the left of a meet is eliminated pointwise.