Some basic equalities and isomorphisms of composition and base change functors #
Notation #
We provide the following notations:
Given a morphism f : J ⟶ I
in a category C
,
Σ_ f
is the functorOver.map f : Over I ⥤ Over J
.Δ_ f
is the functorbaseChange f : Over J ⥤ Over I
.
Given an object I : C
,
Σ_ I
is the functorOver.forget : Over I ⥤ C
.Δ_ I
is the functorOver.star : C ⥤ Over I
.
For X Y : Over I
,
μ_ X Y
is the projection morphism(Σ_ X.hom).obj ((Δ_ X.hom).obj Y) ⟶ Y
defined via the counit of the adjunctionΣ_ ⊣ Δ_
, namely(mapAdjunction Y.hom).counit.app
.π_ X Y
is the projection morphism(Σ_ X.hom).obj ((Δ_ X.hom).obj Y) ⟶ X
defined via the counit of the adjunctionΣ_ ⊣ Δ_
and the isomorphismswapIso X Y : (Σ_ X.hom).obj ((Δ_ X.hom).obj Y) ≅ (Σ_ Y.hom).obj ((Δ_ Y.hom).obj X)
.
We prove that μ_ X Y
and π_ X Y
form a pullback square:
P ---- μ --> •
| |
π Y
| |
v v
• ---X---> I
Implementation Notes #
(SH): The definitions Over.pullback
and mapPullbackAdj
already existed in mathlib.
Later, Over.baseChange
and Over.mapAdjunction
were added
which are duplicates, but the latter have additional simp
lemmas, namely unit_app
and
counit_app
which makes proving things with simp
easier.
We might change instances of Over.mapAdjunction
to Over.mapPullbackAdj
.
(SH) : WIP -- adding simp
attributes to Over.forgetAdjStar
. This means
we no longer will need the lemmas in the namespace Over.forgetAdjStar
.
Other diagrams #
.fst
pullback p f ------> X
| |
| | p
.snd | |
v v
J ----------> I
f
Using the notation above, we have
hom_eq_pullback_snd
proves that(Δ_ f Over.mk p).hom
ispullback.snd
natIsoTensorLeft
proves thatΔ_ f
⋙Σ_ f
is isomorphic to the product functorf × _
in the slice categoryOver I
.
A morphism f : X ⟶ Y
induces a functor Over X ⥤ Over Y
in the obvious way.
See https://stacks.math.columbia.edu/tag/001G.
Equations
- CategoryTheory.«termΣ__» = Lean.ParserDescr.node `CategoryTheory.«termΣ__» 90 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "Σ_ ") (Lean.ParserDescr.cat `term 90))
Instances For
The forgetful functor mapping an arrow to its domain.
See https://stacks.math.columbia.edu/tag/001G.
Equations
- CategoryTheory.«termΣ___1» = Lean.ParserDescr.node `CategoryTheory.«termΣ___1» 90 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "Σ_ ") (Lean.ParserDescr.cat `term 90))
Instances For
In a category with pullbacks, a morphism f : X ⟶ Y
induces a functor Over Y ⥤ Over X
,
by pulling back a morphism along f
.
Equations
- CategoryTheory.termΔ__ = Lean.ParserDescr.node `CategoryTheory.termΔ__ 90 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "Δ_ ") (Lean.ParserDescr.cat `term 90))
Instances For
The functor from C
to Over X
which sends Y : C
to π₁ : X ⨯ Y ⟶ X
, sometimes denoted X*
.
Equations
- CategoryTheory.termΔ___1 = Lean.ParserDescr.node `CategoryTheory.termΔ___1 90 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "Δ_ ") (Lean.ParserDescr.cat `term 90))
Instances For
Equations
- ⋯ = ⋯
Instances For
Equality of functors should be avoided if possible, instead we use the isomorphism version. For use elsewhere.
Equations
Instances For
Equations
Instances For
This is useful when homMk (· ≫ ·)
appears under Functor.map
or a natural equivalence.
For an arrow f : J ⟶ I
and an object X : Over I
, the base-change of X
along f
is pullback.snd
.
The base-change along terminal.from
ER: Changed statement from an equality to an isomorphism.
Proof of commutativity is stuck because of the rewrite. Perhaps I can do this another way?
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
For X Y : Over I
, the map μ := projFst
, defined via the counit of the adjunction
Σ_ ⊣ Δ_
, is a morphism form the base-change of Y
along X
to Y
.
P ---- μ --> •
| |
π Y
| |
v v
• ---X---> I
Equations
- CategoryTheory.baseChange.projFst X Y = (CategoryTheory.Over.mapPullbackAdj X.hom).counit.app Y
Instances For
For X Y : Over I
, the map π := projSnd
is a morphism form the base-change of X
along
Y
to X
.
P ---- μ --> •
| |
π Y
| |
v v
• ---X---> I
Equations
- CategoryTheory.baseChange.projSnd X Y = CategoryTheory.CategoryStruct.comp (CategoryTheory.baseChange.swapIso X Y).hom ((CategoryTheory.Over.mapPullbackAdj Y.hom).counit.app X)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
The object (Σ_ X.hom) ((Δ_ X.hom) Y)
is isomorphic to the binary product X × Y
in Over I
.
Equations
- CategoryTheory.baseChange.isoProd X Y = (CategoryTheory.baseChange.isBinaryProduct X Y).conePointUniqueUpToIso (CategoryTheory.Limits.prodIsProd X Y)
Instances For
Equations
Instances For
The functor composition (baseChange X.hom) ⋙ (Over.map X.hom)
is naturally isomorphic
to the left tensor product functor X × _
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Instances For
The isomorphism between the base change functors obtained as the conjugate of the mapForgetIso
.
For use elsewhere.
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.
Instances For
The conjugate isomorphism between pullback functors.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.toOverTerminal' T h = { obj := fun (X : C) => CategoryTheory.Over.mk (h.from X), map := fun {X Y : C} (f : X ⟶ Y) => CategoryTheory.Over.homMk f ⋯, map_id := ⋯, map_comp := ⋯ }
Instances For
Note (SH): the difference between this and Δ_ (⊤_ C)
is that we only use the
assumption that C
has only terminal but not binary products.
On the other hand, I recommend using Δ_ (⊤_ C)
in general since we know more facts
about it such its adjunction (top of the file).
Equations
- CategoryTheory.toOverTerminal = CategoryTheory.toOverTerminal' (⊤_ C) CategoryTheory.Limits.terminalIsTerminal
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.equivOverTerminal = CategoryTheory.equivOverTerminal' (⊤_ C) CategoryTheory.Limits.terminalIsTerminal
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- CategoryTheory.toOverTerminalStarIso = sorry
Instances For
Equations
- One or more equations did not get rendered due to their size.