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 aPEquiv
from a sets
, which sends an element to itself if it is ins
.PEquiv.single
: given two elementsa : α
andb : β
, create aPEquiv
that sends them to each other, and ignores all other elements.PEquiv.injective_of_forall_ne_isSome
/injective_of_forall_isSome
: If the domain of aPEquiv
is all ofα
(except possibly one point), itstoFun
is 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.