Opposite categories of complexes #
THIS FILE IS SYNCHRONIZED WITH MATHLIB4. Any changes to this file require a corresponding PR to mathlib4. Given a preadditive category
V, the opposite of its category of chain complexes is equivalent to the category of cochain complexes of objects inVᵒᵖ. We define this equivalence, and another analagous 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 analagous result for unop).
Implementation notes #
It is convenient to define both op and op_symm; 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
Given f, g with f ≫ g = 0, the homology of g.op, f.op is the opposite of the homology of
f, g.
Equations
- homology_op f g w = category_theory.limits.cokernel_iso_of_eq _ ≪≫ category_theory.limits.cokernel_epi_comp (category_theory.limits.image_subobject_iso g.op ≪≫ (category_theory.image_op_op g).symm).hom ((category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _).op ≫ (category_theory.limits.kernel_subobject_iso f.op ≪≫ category_theory.kernel_op_op f).inv) ≪≫ category_theory.limits.cokernel_comp_is_iso (category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _).op (category_theory.limits.kernel_subobject_iso f.op ≪≫ category_theory.kernel_op_op f).inv ≪≫ category_theory.cokernel_op_op (category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _) ≪≫ (homology_iso_kernel_desc f g w ≪≫ category_theory.limits.kernel_iso_of_eq _ ≪≫ category_theory.limits.kernel_comp_mono (category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _) (category_theory.limits.image.ι g)).op
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
- homology_unop f g w = category_theory.limits.cokernel_iso_of_eq _ ≪≫ category_theory.limits.cokernel_epi_comp (category_theory.limits.image_subobject_iso g.unop ≪≫ (category_theory.image_unop_unop g).symm).hom ((category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _).unop ≫ (category_theory.limits.kernel_subobject_iso f.unop ≪≫ category_theory.kernel_unop_unop f).inv) ≪≫ category_theory.limits.cokernel_comp_is_iso (category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _).unop (category_theory.limits.kernel_subobject_iso f.unop ≪≫ category_theory.kernel_unop_unop f).inv ≪≫ category_theory.cokernel_unop_unop (category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _) ≪≫ (homology_iso_kernel_desc f g w ≪≫ category_theory.limits.kernel_iso_of_eq _ ≪≫ category_theory.limits.kernel_comp_mono (category_theory.limits.cokernel.desc f (category_theory.limits.factor_thru_image g) _) (category_theory.limits.image.ι g)).unop
Sends a complex X with objects in V to the corresponding complex with objects in Vᵒᵖ.
Sends a complex X with objects in V to the corresponding complex with objects in Vᵒᵖ.
Sends a complex X with objects in Vᵒᵖ to the corresponding complex with objects in V.
Sends a complex X with objects in Vᵒᵖ to the corresponding complex with objects in V.
Auxilliary definition for op_equivalence.
Equations
- homological_complex.op_functor V c = {obj := λ (X : (homological_complex V c)ᵒᵖ), (opposite.unop X).op, map := λ (X Y : (homological_complex V c)ᵒᵖ) (f : X ⟶ Y), {f := λ (i : ι), (f.unop.f i).op, comm' := _}, map_id' := _, map_comp' := _}
Instances for homological_complex.op_functor
        
        
    Auxilliary definition for op_equivalence.
Equations
- homological_complex.op_inverse V c = {obj := λ (X : homological_complex Vᵒᵖ c.symm), opposite.op X.unop_symm, map := λ (X Y : homological_complex Vᵒᵖ c.symm) (f : X ⟶ Y), quiver.hom.op {f := λ (i : ι), (f.f i).unop, comm' := _}, map_id' := _, map_comp' := _}
Auxilliary definition for op_equivalence.
Equations
- homological_complex.op_unit_iso V c = category_theory.nat_iso.of_components (λ (X : (homological_complex V c)ᵒᵖ), (homological_complex.hom.iso_of_components (λ (i : ι), category_theory.iso.refl ((opposite.unop X).op.unop_symm.X i)) _).op) _
Auxilliary definition for op_equivalence.
Equations
- homological_complex.op_counit_iso V c = category_theory.nat_iso.of_components (λ (X : homological_complex Vᵒᵖ c.symm), homological_complex.hom.iso_of_components (λ (i : ι), category_theory.iso.refl (((homological_complex.op_inverse V c ⋙ homological_complex.op_functor V c).obj X).X i)) _) _
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
- homological_complex.op_equivalence V c = {functor := homological_complex.op_functor V c _inst_2, inverse := homological_complex.op_inverse V c _inst_2, unit_iso := homological_complex.op_unit_iso V c _inst_2, counit_iso := homological_complex.op_counit_iso V c _inst_2, functor_unit_iso_comp' := _}
Auxilliary definition for unop_equivalence.
Equations
Instances for homological_complex.unop_functor
        
        
    Auxilliary definition for unop_equivalence.
Equations
- homological_complex.unop_inverse V c = {obj := λ (X : homological_complex V c.symm), opposite.op X.op_symm, map := λ (X Y : homological_complex V c.symm) (f : X ⟶ Y), quiver.hom.op {f := λ (i : ι), (f.f i).op, comm' := _}, map_id' := _, map_comp' := _}
Auxilliary definition for unop_equivalence.
Equations
- homological_complex.unop_unit_iso V c = category_theory.nat_iso.of_components (λ (X : (homological_complex Vᵒᵖ c)ᵒᵖ), (homological_complex.hom.iso_of_components (λ (i : ι), category_theory.iso.refl ((opposite.unop X).op.unop_symm.X i)) _).op) _
Auxilliary definition for unop_equivalence.
Equations
- homological_complex.unop_counit_iso V c = category_theory.nat_iso.of_components (λ (X : homological_complex V c.symm), homological_complex.hom.iso_of_components (λ (i : ι), category_theory.iso.refl (((homological_complex.unop_inverse V c ⋙ homological_complex.unop_functor V c).obj X).X i)) _) _
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
- homological_complex.unop_equivalence V c = {functor := homological_complex.unop_functor V c _inst_2, inverse := homological_complex.unop_inverse V c _inst_2, unit_iso := homological_complex.unop_unit_iso V c _inst_2, counit_iso := homological_complex.unop_counit_iso V c _inst_2, functor_unit_iso_comp' := _}
Auxilliary tautological definition for homology_op.
Equations
- C.homology_op_def i = category_theory.iso.refl (C.op.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
- C.homology_op i = C.homology_op_def i ≪≫ homology_op (C.d_to i) (C.d_from i) _
Auxilliary tautological definition for homology_unop.
Equations
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
- homological_complex.homology_unop i C = homological_complex.homology_unop_def i C ≪≫ homology_unop (C.d_to i) (C.d_from i) _