Partial Equivalences #
In this file, we define partial equivalences PEquiv, which are a bijection between a subset of α
and a subset of β. Notationally, a PEquiv is denoted by "≃." (note that the full stop is part
of the notation). The way we store these internally is with two functions f : α → Option β and
the reverse function g : β → Option α, with the condition that if f a is some b,
then g b is some a.
Main results #
PEquiv.ofSet: creates aPEquivfrom a sets, which sends an element to itself if it is ins.PEquiv.single: given two elementsa : αandb : β, create aPEquivthat sends them to each other, and ignores all other elements.PEquiv.injective_of_forall_ne_isSome/injective_of_forall_isSome: If the domain of aPEquivis all ofα(except possibly one point), itstoFunis injective.
Canonical order #
PEquiv is canonically ordered by inclusion; that is, if a function f defined on a subset s
is equal to g on that subset, but g is also defined on a larger set, then f ≤ g. We also have
a definition of ⊥, which is the empty PEquiv (sends all to none), which in the end gives us a
SemilatticeInf with an OrderBot instance.
Tags #
pequiv, partial equivalence
- toFun : α → Option β
The underlying partial function of a
PEquiv - invFun : β → Option α
The partial inverse of
toFun - inv : ∀ (a : α) (b : β), a ∈ PEquiv.invFun s b ↔ b ∈ PEquiv.toFun s a
A PEquiv is a partial equivalence, a representation of a bijection between a subset
of α and a subset of β. See also LocalEquiv for a version that requires toFun and
invFun to be globally defined functions and has source and target sets as extra fields.
Instances For
A PEquiv is a partial equivalence, a representation of a bijection between a subset
of α and a subset of β. See also LocalEquiv for a version that requires toFun and
invFun to be globally defined functions and has source and target sets as extra fields.
Equations
- «term_≃._» = Lean.ParserDescr.trailingNode `term_≃._ 25 26 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ≃. ") (Lean.ParserDescr.cat `term 25))
Instances For
The inverse partial equivalence.
Equations
- PEquiv.symm f = { toFun := f.invFun, invFun := f.toFun, inv := (_ : ∀ (x : β) (x_1 : α), x ∈ PEquiv.toFun f x_1 ↔ x_1 ∈ PEquiv.invFun f x) }
Instances For
If the domain of a PEquiv is α except a point, its forward direction is injective.
If the domain of a PEquiv is all of α, its forward direction is injective.
Creates a PEquiv that is the identity on s, and none outside of it.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Create a PEquiv which sends a to b and b to a, but is otherwise none.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.