Typeclasses for S-objects and S-morphisms #
Warning: This is not usually how typeclasses should be used.
This is only a sensible approach when the morphism is considered as a structure on X,
typically in algebraic geometry.
This is analogous to to how we view ringhoms as structures via the Algebra typeclass.
For other applications use unbundled arrows or CategoryTheory.Over.
Main definition #
CategoryTheory.OverClass:OverClass X SequipsXwith a morphism intoS.X ↘ S : X ⟶ Sis the structure morphism.CategoryTheory.HomIsOver:HomIsOver f Sasserts thatfcommutes with the structure morphisms.
OverClass X S is the typeclass containing the data of a structure morphism X ↘ S : X ⟶ S.
- ofHom :: (
The structure morphism. Use
X ↘ Sinstead.- )
Instances
The structure morphism X ↘ S : X ⟶ S given OverClass X S.
The instance argument is an optParam instead so that it appears in the discrimination tree.
Equations
Instances For
The structure morphism X ↘ S : X ⟶ S given OverClass X S.
Equations
- CategoryTheory.«term_↘_» = Lean.ParserDescr.trailingNode `CategoryTheory.«term_↘_» 90 90 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol " ↘ ") (Lean.ParserDescr.cat `term 90))
Instances For
See Note [custom simps projection]
Equations
- CategoryTheory.OverClass.Simps.over X S = X ↘ S
Instances For
X.CanonicallyOverClass S is the typeclass containing the data of a
structure morphism X ↘ S : X ⟶ S,
and that S is (uniquely) inferable from the structure of X.
Instances
See Note [custom simps projection]
Equations
Instances For
Equations
Equations
- CategoryTheory.CanonicallyOverClass.instOverClass S = { hom := CategoryTheory.CategoryStruct.comp (X ↘ Y) (Y ↘ S) }
Given OverClass X S and OverClass Y S and f : X ⟶ Y,
HomIsOver f S is the typeclass asserting f commutes with the structure morphisms.
Instances
IsOverTower X Y S is the typeclass asserting that the structure morphisms
X ↘ Y, Y ↘ S, and X ↘ S commute.
Equations
- CategoryTheory.IsOverTower X Y S = CategoryTheory.HomIsOver (X ↘ Y) S
Instances For
Bundle X with an OverClass X S instance into Over S.
Equations
Instances For
Bundle a morphism f : X ⟶ Y with HomIsOver f S into a morphism in Over S.
Equations
Instances For
Equations
- CategoryTheory.OverClass.fromOver X = { hom := X.hom }
Reinterpret an isomorphism over an object S into an isomorphism in the category over S.
Equations
- CategoryTheory.Iso.asOver S e = { hom := CategoryTheory.OverClass.asOverHom S e.hom, inv := CategoryTheory.OverClass.asOverHom S e.inv, hom_inv_id := ⋯, inv_hom_id := ⋯ }