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 a- PEquivfrom a set- s, which sends an element to itself if it is in- s.
- PEquiv.single: given two elements- a : αand- b : β, create a- PEquivthat sends them to each other, and ignores all other elements.
- PEquiv.injective_of_forall_ne_isSome/- injective_of_forall_isSome: If the domain of a- PEquivis all of- α(except possibly one point), its- toFunis 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.