Documentation

Mathlib.Algebra.Homology.Opposite

Opposite categories of complexes #

Given a preadditive category V, the opposite of its category of chain complexes is equivalent to the category of cochain complexes of objects in Vᵒᵖ. We define this equivalence, and another analogous equivalence (for a general category of homological complexes with a general complex shape).

We then show that when V is abelian, if C is a homological complex, then the homology of op(C) is isomorphic to op of the homology of C (and the analogous result for unop).

Implementation notes #

It is convenient to define both op and opSymm; this is because given a complex shape c, c.symm.symm is not defeq to c.

Tags #

opposite, chain complex, cochain complex, homology, cohomology, homological complex

def homology'Op {V : Type u_1} [CategoryTheory.Category.{u_2, u_1} V] [CategoryTheory.Abelian V] {X : V} {Y : V} {Z : V} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) :
homology' g.op f.op { unop := homology' f g w }

Given f, g with f ≫ g = 0, the homology of g.op, f.op is the opposite of the homology of f, g.

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    def homology'Unop {V : Type u_1} [CategoryTheory.Category.{u_2, u_1} V] [CategoryTheory.Abelian V] {X : Vᵒᵖ} {Y : Vᵒᵖ} {Z : Vᵒᵖ} (f : X Y) (g : Y Z) (w : CategoryTheory.CategoryStruct.comp f g = 0) :
    homology' g.unop f.unop (homology' f g w).unop

    Given morphisms f, g in Vᵒᵖ with f ≫ g = 0, the homology of g.unop, f.unop is the opposite of the homology of f, g.

    Equations
    • One or more equations did not get rendered due to their size.
    Instances For
      @[simp]
      theorem HomologicalComplex.op_d {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex V c) (i : ι) (j : ι) :
      X.op.d i j = (X.d j i).op
      @[simp]
      theorem HomologicalComplex.op_X {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex V c) (i : ι) :
      X.op.X i = { unop := X.X i }

      Sends a complex X with objects in V to the corresponding complex with objects in Vᵒᵖ.

      Equations
      • X.op = { X := fun (i : ι) => { unop := X.X i }, d := fun (i j : ι) => (X.d j i).op, shape := , d_comp_d' := }
      Instances For
        @[simp]
        theorem HomologicalComplex.opSymm_X {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex V c.symm) (i : ι) :
        X.opSymm.X i = { unop := X.X i }
        @[simp]
        theorem HomologicalComplex.opSymm_d {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex V c.symm) (i : ι) (j : ι) :
        X.opSymm.d i j = (X.d j i).op

        Sends a complex X with objects in V to the corresponding complex with objects in Vᵒᵖ.

        Equations
        • X.opSymm = { X := fun (i : ι) => { unop := X.X i }, d := fun (i j : ι) => (X.d j i).op, shape := , d_comp_d' := }
        Instances For
          @[simp]
          theorem HomologicalComplex.unop_d {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex Vᵒᵖ c) (i : ι) (j : ι) :
          X.unop.d i j = (X.d j i).unop
          @[simp]
          theorem HomologicalComplex.unop_X {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex Vᵒᵖ c) (i : ι) :
          X.unop.X i = (X.X i).unop

          Sends a complex X with objects in Vᵒᵖ to the corresponding complex with objects in V.

          Equations
          • X.unop = { X := fun (i : ι) => (X.X i).unop, d := fun (i j : ι) => (X.d j i).unop, shape := , d_comp_d' := }
          Instances For
            @[simp]
            theorem HomologicalComplex.unopSymm_d {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex Vᵒᵖ c.symm) (i : ι) (j : ι) :
            X.unopSymm.d i j = (X.d j i).unop
            @[simp]
            theorem HomologicalComplex.unopSymm_X {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (X : HomologicalComplex Vᵒᵖ c.symm) (i : ι) :
            X.unopSymm.X i = (X.X i).unop

            Sends a complex X with objects in Vᵒᵖ to the corresponding complex with objects in V.

            Equations
            • X.unopSymm = { X := fun (i : ι) => (X.X i).unop, d := fun (i j : ι) => (X.d j i).unop, shape := , d_comp_d' := }
            Instances For
              @[simp]
              theorem HomologicalComplex.opFunctor_map_f {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Preadditive V] :
              ∀ {X Y : (HomologicalComplex V c)ᵒᵖ} (f : X Y) (i : ι), ((HomologicalComplex.opFunctor V c).map f).f i = (f.unop.f i).op

              Auxiliary definition for opEquivalence.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                @[simp]
                theorem HomologicalComplex.opInverse_map {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Preadditive V] :
                ∀ {X Y : HomologicalComplex Vᵒᵖ c.symm} (f : X Y), (HomologicalComplex.opInverse V c).map f = Quiver.Hom.op { f := fun (i : ι) => (f.f i).unop, comm' := }

                Auxiliary definition for opEquivalence.

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For

                  Auxiliary definition for opEquivalence.

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For

                    Auxiliary definition for opEquivalence.

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For

                      Given a category of complexes with objects in V, there is a natural equivalence between its opposite category and a category of complexes with objects in Vᵒᵖ.

                      Equations
                      • One or more equations did not get rendered due to their size.
                      Instances For
                        @[simp]
                        theorem HomologicalComplex.unopFunctor_map_f {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Preadditive V] :
                        ∀ {X Y : (HomologicalComplex Vᵒᵖ c)ᵒᵖ} (f : X Y) (i : ι), ((HomologicalComplex.unopFunctor V c).map f).f i = (f.unop.f i).unop

                        Auxiliary definition for unopEquivalence.

                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          @[simp]
                          theorem HomologicalComplex.unopInverse_map {ι : Type u_1} (V : Type u_2) [CategoryTheory.Category.{u_3, u_2} V] (c : ComplexShape ι) [CategoryTheory.Preadditive V] :
                          ∀ {X Y : HomologicalComplex V c.symm} (f : X Y), (HomologicalComplex.unopInverse V c).map f = Quiver.Hom.op { f := fun (i : ι) => (f.f i).op, comm' := }

                          Auxiliary definition for unopEquivalence.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Auxiliary definition for unopEquivalence.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              Auxiliary definition for unopEquivalence.

                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For

                                Given a category of complexes with objects in Vᵒᵖ, there is a natural equivalence between its opposite category and a category of complexes with objects in V.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  instance HomologicalComplex.instHasHomologyOppositeOp {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (K : HomologicalComplex V c) (i : ι) [K.HasHomology i] :
                                  K.op.HasHomology i
                                  Equations
                                  • =
                                  instance HomologicalComplex.instHasHomologyUnopOfOpposite {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (K : HomologicalComplex Vᵒᵖ c) (i : ι) [K.HasHomology i] :
                                  K.unop.HasHomology i
                                  Equations
                                  • =
                                  def HomologicalComplex.homologyOp {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (K : HomologicalComplex V c) (i : ι) [K.HasHomology i] :
                                  K.op.homology i { unop := K.homology i }

                                  If K is a homological complex, then the homology of K.op identifies to the opposite of the homology of K.

                                  Equations
                                  • K.homologyOp i = (K.sc i).homologyOpIso
                                  Instances For
                                    def HomologicalComplex.homologyUnop {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Preadditive V] (K : HomologicalComplex Vᵒᵖ c) (i : ι) [K.HasHomology i] :
                                    K.unop.homology i (K.homology i).unop

                                    If K is a homological complex in the opposite category, then the homology of K.unop identifies to the opposite of the homology of K.

                                    Equations
                                    • K.homologyUnop i = (K.unop.homologyOp i).unop
                                    Instances For
                                      def HomologicalComplex.homology'OpDef {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Abelian V] (C : HomologicalComplex V c) (i : ι) :
                                      C.op.homology' i homology' (C.dFrom i).op (C.dTo i).op

                                      Auxiliary tautological definition for homologyOp.

                                      Equations
                                      Instances For
                                        def HomologicalComplex.homology'Op {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Abelian V] (C : HomologicalComplex V c) (i : ι) :
                                        C.op.homology' i { unop := C.homology' i }

                                        Given a complex C of objects in V, the ith homology of its 'opposite' complex (with objects in Vᵒᵖ) is the opposite of the ith homology of C.

                                        Equations
                                        Instances For
                                          def HomologicalComplex.homology'UnopDef {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Abelian V] (i : ι) (C : HomologicalComplex Vᵒᵖ c) :
                                          C.unop.homology' i homology' (C.dFrom i).unop (C.dTo i).unop

                                          Auxiliary tautological definition for homologyUnop.

                                          Equations
                                          Instances For
                                            def HomologicalComplex.homology'Unop {ι : Type u_1} {V : Type u_2} [CategoryTheory.Category.{u_3, u_2} V] {c : ComplexShape ι} [CategoryTheory.Abelian V] (i : ι) (C : HomologicalComplex Vᵒᵖ c) :
                                            C.unop.homology' i (C.homology' i).unop

                                            Given a complex C of objects in Vᵒᵖ, the ith homology of its 'opposite' complex (with objects in V) is the opposite of the ith homology of C.

                                            Equations
                                            Instances For