Order homomorphisms #
This file defines order homomorphisms, which are bundled monotone functions. A preorder
homomorphism f : α →o β is a function α → β along with a proof that ∀ x y, x ≤ y → f x ≤ f y.
Main definitions #
In this file we define the following bundled monotone maps:
OrderHom α βa.k.a.α →o β: Preorder homomorphism. AnOrderHom α βis a functionf : α → βsuch thata₁ ≤ a₂ → f a₁ ≤ f a₂OrderEmbedding α βa.k.a.α ↪o β: Relation embedding. AnOrderEmbedding α βis an embeddingf : α ↪ βsuch thata ≤ b ↔ f a ≤ f b. Defined as an abbreviation of@RelEmbedding α β (≤) (≤).OrderIso: Relation isomorphism. AnOrderIso α βis an equivalencef : α ≃ βsuch thata ≤ b ↔ f a ≤ f b. Defined as an abbreviation of@RelIso α β (≤) (≤).
We also define many OrderHoms. In some cases we define two versions, one with ₘ suffix and
one without it (e.g., OrderHom.compₘ and OrderHom.comp). This means that the former
function is a "more bundled" version of the latter. We can't just drop the "less bundled" version
because the more bundled version usually does not work with dot notation.
OrderHom.id: identity map asα →o α;OrderHom.curry: an order isomorphism betweenα × β →o γandα →o β →o γ;OrderHom.comp: composition of two bundled monotone maps;OrderHom.compₘ: composition of bundled monotone maps as a bundled monotone map;OrderHom.const: constant function as a bundled monotone map;OrderHom.prod: combineα →o βandα →o γintoα →o β × γ;OrderHom.prodₘ: a more bundled version ofOrderHom.prod;OrderHom.prodIso: order isomorphism betweenα →o β × γand(α →o β) × (α →o γ);OrderHom.diag: diagonal embedding ofαintoα × αas a bundled monotone map;OrderHom.onDiag: restrict a monotone mapα →o α →o βto the diagonal;OrderHom.fst: projectionProd.fst : α × β → αas a bundled monotone map;OrderHom.snd: projectionProd.snd : α × β → βas a bundled monotone map;OrderHom.prodMap:Prod.map f gas a bundled monotone map;Pi.evalOrderHom: evaluation of a function at a pointFunction.eval ias a bundled monotone map;OrderHom.coeFnHom: coercion to function as a bundled monotone map;OrderHom.apply: application of anOrderHomat a point as a bundled monotone map;OrderHom.pi: combine a family of monotone mapsf i : α →o π iinto a monotone mapα →o Π i, π i;OrderHom.piIso: order isomorphism betweenα →o Π i, π iandΠ i, α →o π i;OrderHom.subtype.val: embeddingSubtype.val : Subtype p → αas a bundled monotone map;OrderHom.dual: reinterpret a monotone mapα →o βas a monotone mapαᵒᵈ →o βᵒᵈ;OrderHom.dualIso: order isomorphism betweenα →o βand(αᵒᵈ →o βᵒᵈ)ᵒᵈ;OrderHom.compl: order isomorphismα ≃o αᵒᵈgiven by taking complements in a Boolean algebra;
We also define two functions to convert other bundled maps to α →o β:
OrderEmbedding.toOrderHom: convertα ↪o βtoα →o β;RelHom.toOrderHom: convert aRelHombetween strict orders to anOrderHom.
Tags #
monotone map, bundled morphism
An order embedding is an embedding f : α ↪ β such that a ≤ b ↔ (f a) ≤ (f b).
This definition is an abbreviation of RelEmbedding (≤) (≤).
Instances For
Notation for an OrderEmbedding.
Instances For
OrderHomClass F α b asserts that F is a type of ≤-preserving morphisms.
Instances For
OrderIsoClass F α β states that F is a type of order isomorphisms.
You should extend this class when you extend OrderIso.
An order isomorphism respects
≤.
Instances
Turn an element of a type F satisfying OrderIsoClass F α β into an actual
OrderIso. This is declared as the default coercion from F to α ≃o β.
Instances For
Any type satisfying OrderIsoClass can be cast into OrderIso via
OrderIsoClass.toOrderIso.
Turn an element of a type F satisfying OrderHomClass F α β into an actual
OrderHom. This is declared as the default coercion from F to α →o β.
Instances For
Any type satisfying OrderHomClass can be cast into OrderHom via
OrderHomClass.toOrderHom.
See Note [custom simps projection]. We give this manually so that we use toFun as the
projection directly instead.
Instances For
One can lift an unbundled monotone function to a bundled one.
The identity function as bundled monotone function.
Instances For
The preorder structure of α →o β is pointwise inequality: f ≤ g ↔ ∀ a, f a ≤ g a.
Constant function bundled as an OrderHom.
Instances For
Diagonal embedding of α into α × α as an OrderHom.
Instances For
Instances For
Instances For
Evaluation of an unbundled function at a point (Function.eval) as an OrderHom.
Instances For
The "forgetful functor" from α →o β to α → β that takes the underlying function,
is monotone.
Instances For
Function application fun f => f a (for fixed a) is a monotone function from the
monotone function space α →o β to β. See also Pi.evalOrderHom.
Instances For
Subtype.val as a bundled monotone function.
Instances For
Subtype.impEmbedding as an order embedding.
Instances For
There is a unique monotone map from a subsingleton to itself.
OrderHom.dual as an order isomorphism.
Instances For
Embeddings of partial orders that preserve < also preserve ≤.
Instances For
A preorder which embeds into a well-founded preorder is itself well-founded.
A preorder which embeds into a preorder in which (· > ·) is well-founded
also has (· > ·) well-founded.
To define an order embedding from a partial order to a preorder it suffices to give a function
together with a proof that it satisfies f a ≤ f b ↔ a ≤ b.
Instances For
A strictly monotone map from a linear order is an order embedding.
Instances For
Embedding of a subtype into the ambient type as an OrderEmbedding.
Instances For
Convert an OrderEmbedding to an OrderHom.
Instances For
If the images by an order embedding of two elements are disjoint, then they are themselves disjoint.
If the images by an order embedding of two elements are codisjoint, then they are themselves codisjoint.
If the images by an order embedding of two elements are complements, then they are themselves complements.
A bundled expression of the fact that a map between partial orders that is strictly monotone is weakly monotone.
Instances For
Reinterpret an order isomorphism as an order embedding.
Instances For
Identity order isomorphism.
Instances For
Inverse of an order isomorphism.
Instances For
An order isomorphism between the domains and codomains of two prosets of order homomorphisms gives an order isomorphism between the two function prosets.
Instances For
Prod.swap as an OrderIso.
Instances For
Equiv.prodAssoc promoted to an order isomorphism.
Instances For
The order isomorphism between a type and its double dual.
Instances For
Converts a RelIso (<) (<) into an OrderIso.
Instances For
To show that f : α → β, g : β → α make up an order isomorphism of linear orders,
it suffices to prove cmp a (g b) = cmp (f a) b.
Instances For
To show that f : α →o β and g : β →o α make up an order isomorphism it is enough to show
that g is the inverse of f.
Instances For
Order isomorphism between α → β and β, where α has a unique element.
Instances For
Equiv.equivOfIsEmpty promoted to an OrderIso.
Instances For
A strictly monotone function with a right inverse is an order isomorphism.
Instances For
An order isomorphism is also an order isomorphism between dual orders.
Instances For
Note that this goal could also be stated (Disjoint on f) a b
Note that this goal could also be stated (Codisjoint on f) a b
The bijection ULift.{v} α ≃ α as an isomorphism of orders.