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
A PEquiv is a partial equivalence, a representation of a bijection between a subset
of α and a subset of β. See also PartialEquiv for a version that requires toFun and
invFun to be globally defined functions and has source and target sets as extra fields.
- toFun : α → Option β
The underlying partial function of a
PEquiv - invFun : β → Option α
The partial inverse of
toFun
Instances For
A PEquiv is a partial equivalence, a representation of a bijection between a subset
of α and a subset of β. See also PartialEquiv 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
Equations
- PEquiv.instFunLikeOption = { coe := PEquiv.toFun, coe_injective' := ⋯ }
The identity map as a partial equivalence.
Instances For
Equations
- PEquiv.instOrderBot = { toBot := PEquiv.instBotPEquiv, bot_le := ⋯ }
Equations
- One or more equations did not get rendered due to their size.