Commutative squares #
This file provide an API for commutative squares in categories.
If top
, left
, right
and bottom
are four morphisms which are the edges
of a square, CommSq top left right bottom
is the predicate that this
square is commutative.
The structure CommSq
is extended in CategoryTheory/Shapes/Limits/CommSq.lean
as IsPullback
and IsPushout
in order to define pullback and pushout squares.
Future work #
Refactor LiftStruct
from Arrow.lean
and lifting properties using CommSq.lean
.
The proposition that a square
W ---f---> X
| |
g h
| |
v v
Y ---i---> Z
is a commuting square.
The square commutes.
Instances For
The commutative square in the opposite category associated to a commutative square.
The commutative square associated to a commutative square in the opposite category.
The horizontal composition of two commutative squares as below is a commutative square.
W ---f---> X ---f'--> X'
| | |
g h h'
| | |
v v v
Y ---i---> Z ---i'--> Z'
The vertical composition of two commutative squares as below is a commutative square.
W ---f---> X
| |
g h
| |
v v
Y ---i---> Z
| |
g' h'
| |
v v
Y'---i'--> Z'
Alias of CategoryTheory.Functor.map_commSq
.
Now we consider a square:
A ---f---> X
| |
i p
| |
v v
B ---g---> Y
The datum of a lift in a commutative square, i.e. an up-right-diagonal morphism which makes both triangles commute.
- l : B ⟶ X
The lift.
- fac_left : CategoryTheory.CategoryStruct.comp i self.l = f
The upper left triangle commutes.
- fac_right : CategoryTheory.CategoryStruct.comp self.l p = g
The lower right triangle commutes.
Instances For
A LiftStruct
for a commutative square gives a LiftStruct
for the
corresponding square in the opposite category.
Equations
- CategoryTheory.CommSq.LiftStruct.op l = { l := l.l.op, fac_left := ⋯, fac_right := ⋯ }
Instances For
A LiftStruct
for a commutative square in the opposite category
gives a LiftStruct
for the corresponding square in the original category.
Equations
- CategoryTheory.CommSq.LiftStruct.unop l = { l := l.l.unop, fac_left := ⋯, fac_right := ⋯ }
Instances For
Equivalences of LiftStruct
for a square and the corresponding square
in the opposite category.
Equations
- CategoryTheory.CommSq.LiftStruct.opEquiv sq = { toFun := CategoryTheory.CommSq.LiftStruct.op, invFun := CategoryTheory.CommSq.LiftStruct.unop, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equivalences of LiftStruct
for a square in the oppositive category and
the corresponding square in the original category.
Equations
- CategoryTheory.CommSq.LiftStruct.unopEquiv sq = { toFun := CategoryTheory.CommSq.LiftStruct.unop, invFun := CategoryTheory.CommSq.LiftStruct.op, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- ⋯ = ⋯
Equations
- ⋯ = ⋯
The assertion that a square has a LiftStruct
.
- exists_lift : Nonempty (CategoryTheory.CommSq.LiftStruct sq)
Square has a
LiftStruct
.
Instances
A choice of a diagonal morphism that is part of a LiftStruct
when
the square has a lift.
Equations
- CategoryTheory.CommSq.lift sq = (Nonempty.some ⋯).l