HomLift #
Given a functor p : ๐ณ โฅค ๐ฎ, this file provides API for expressing the fact that p(ฯ) = f
for given morphisms ฯ and f. The reason this API is needed is because, in general, p.map ฯ = f
does not make sense when the domain and/or codomain of ฯ and f are not definitionally equal.
Main definition #
Given morphism ฯ : a โถ b in ๐ณ and f : R โถ S in ๐ฎ, p.IsHomLift f ฯ is a class, defined
using the auxiliary inductive type IsHomLiftAux which expresses the fact that f = p(ฯ).
We also define a macro subst_hom_lift p f ฯ which can be used to substitute f with p(ฯ) in a
goal, this tactic is just short for obtain โจโฉ := Functor.IsHomLift.cond (p:=p) (f:=f) (ฯ:=ฯ), and
it is used to make the code more readable.
Helper-type for defining IsHomLift.
- map {๐ฎ : Type uโ} {๐ณ : Type uโ} [Category.{vโ, uโ} ๐ณ] [Category.{vโ, uโ} ๐ฎ] {p : Functor ๐ณ ๐ฎ} {a b : ๐ณ} (ฯ : a โถ b) : IsHomLiftAux p (p.map ฯ) ฯ
Instances For
Given a functor p : ๐ณ โฅค ๐ฎ, an arrow ฯ : a โถ b in ๐ณ and an arrow f : R โถ S in ๐ฎ,
p.IsHomLift f ฯ expresses the fact that ฯ lifts f through p.
This is often drawn as:
a --ฯ--> b
- -
| |
v v
R --f--> S
- cond : IsHomLiftAux p f ฯ
Instances
subst_hom_lift p f ฯ tries to substitute f with p(ฯ) by using p.IsHomLift f ฯ
Equations
- One or more equations did not get rendered due to their size.
Instances For
For any arrow ฯ : a โถ b in ๐ณ, ฯ lifts the arrow p.map ฯ in the base ๐ฎ.
If ฯ : a โถ b and ฯ : b โถ c lift ๐ R, then so does ฯ โซ ฯ
If ฯ : a โถ b lifts f and ฯ : b โถ c lifts ๐ T, then ฯ โซ ฯ lifts f
If ฯ : a โถ b lifts ๐ T and ฯ : b โถ c lifts f, then ฯ โซ ฯ lifts f
Given a morphism f : R โถ S, and an isomorphism ฯ : a โ
b lifting f, isoOfIsoLift f ฯ is
the isomorphism ฮฆ : R โ
S with ฮฆ.hom = f induced from ฯ
Equations
- One or more equations did not get rendered due to their size.
Instances For
If ฯ : a โถ b lifts f : R โถ S and ฯ is an isomorphism, then so is f.
Given ฯ : a โ
b and f : R โ
S, such that ฯ.hom lifts f.hom, then ฯ.inv lifts
f.inv.
Given ฯ : a โ
b and f : R โถ S, such that ฯ.hom lifts f, then ฯ.inv lifts the
inverse of f given by isoOfIsoLift.
If ฯ : a โถ b lifts f : R โถ S and both are isomorphisms, then ฯโปยน lifts fโปยน.
If ฯ : a โ
b is an isomorphism lifting ๐ S for some S : ๐ฎ, then ฯโปยน also
lifts ๐ S.