proposition: Lemma FiberExtComm {C1 C2 : Complex A} (f g : Morphism C1 C2) (H : ComplexHomot A C1 C2) (Comm : to_binop _ _ ((f : (ComplexPreCat_Additive A)⟦_, _⟧)) (to_inv ((g : (ComplexPreCat_Additive A)⟦_, _⟧))) = ComplexHomotMorphism A H) (i : hz) : FiberExtMor f g H i · Diff (MappingCone A g) i = Diff (MappingCone A f) i · FiberExtMor f g H (i + 1).
proof: Proof. set (Comm' := MorphismEq' A _ _ Comm). cbn in Comm'. cbn. unfold FiberExtMor. unfold MappingConeDiff. cbn. unfold MappingConeDiff1, MappingConeDiff2, MappingConeDiff3. cbn. unfold FiberExtMor. cbn. set (DS1 := to_BinDirectSums A (C1 (i + 1)) (C2 i)). set (DS4 := to_BinDirectSums A (C1 (i + 1 + 1)) (C2 (i + 1))). rewrite to_premor_linear'. rewrite to_premor_linear'. rewrite to_premor_linear'. rewrite to_premor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite to_postmor_linear'. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite assoc. rewrite <- (assoc _ _ (to_Pr2 DS4)). rewrite <- (assoc _ _ (to_Pr2 DS4)). rewrite <- (assoc _ _ (to_Pr2 DS4)). rewrite <- (assoc _ _ (to_Pr1 DS4)). rewrite <- (assoc _ _ (to_Pr1 DS4)). rewrite <- (assoc _ _ (to_Pr1 DS4)). rewrite (to_IdIn1 DS4). rewrite (to_IdIn2 DS4). rewrite (to_Unel1' DS4). rewrite (to_Unel2' DS4). unfold DiffTranslationComplex. rewrite ZeroArrow_comp_right. rewrite ZeroArrow_comp_right. rewrite ZeroArrow_comp_right. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite id_right. rewrite id_right. rewrite id_right. rewrite to_lunax''. rewrite to_runax''. rewrite to_runax''. rewrite to_lunax''. rewrite <- (assoc _ _ (to_Pr2 DS1)). rewrite <- (assoc _ _ (to_Pr2 DS1)). rewrite <- (assoc _ _ (to_Pr2 DS1)). rewrite <- (assoc _ _ (to_Pr1 DS1)). rewrite <- (assoc _ _ (to_Pr1 DS1)). rewrite <- (assoc _ _ (to_Pr1 DS1)). rewrite (to_IdIn1 DS1). rewrite (to_IdIn2 DS1). rewrite (to_Unel1' DS1). rewrite (to_Unel2' DS1). rewrite ZeroArrow_comp_right. rewrite ZeroArrow_comp_right. rewrite ZeroArrow_comp_right. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite ZeroArrow_comp_left. rewrite id_right. rewrite id_right. rewrite id_right. rewrite to_runax''. rewrite to_runax''. rewrite to_runax''. rewrite to_lunax''. apply maponpaths. rewrite <- to_postmor_linear'. rewrite <- to_postmor_linear'. rewrite <- to_postmor_linear'. rewrite <- to_postmor_linear'. rewrite <- to_postmor_linear'. apply cancel_postcomposition. rewrite <- to_assoc. rewrite to_postmor_linear'. rewrite to_commax'. rewrite (to_commax' _ _ (to_Pr2 DS1 · Diff C2 i)). rewrite (to_commax' _ _ (to_Pr2 DS1 · Diff C2 i)). rewrite to_assoc. apply maponpaths. rewrite <- assoc. rewrite <- assoc. rewrite <- to_premor_linear'. rewrite <- to_premor_linear'. apply cancel_precomposition. apply (to_rcan A (to_inv (g (i + 1)))). rewrite to_assoc. rewrite to_assoc. rewrite (Comm' (i + 1)). rewrite (@to_rinvax' A (Additive.to_Zero A)). rewrite to_runax''. rewrite <- transport_target_postcompose. rewrite <- PreAdditive_invlcomp. rewrite <- transport_target_to_inv. rewrite to_commax'. rewrite to_assoc. rewrite (@to_rinvax' A (Additive.to_Zero A)). rewrite to_runax''. rewrite transport_compose. rewrite transport_target_postcompose. apply cancel_precomposition. set (tmp := transport_hz_section A C2 1 (Diff C2) _ _ (hzrplusminus i 1)). rewrite <- maponpathsinv0. use (pathscomp0 (! tmp)). clear tmp. use transportf_paths. apply maponpaths. apply isasethz. Qed.
imports: UniMath.Foundations.UnivalenceAxiom UniMath.Foundations.PartD UniMath.Foundations.Propositions UniMath.Foundations.Sets UniMath.Foundations.NaturalNumbers UniMath.MoreFoundations.PartA UniMath.Algebra.BinaryOperations UniMath.Algebra.Monoids UniMath.NumberSystems.Integers UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.TransportMorphisms UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.Equalizers UniMath.CategoryTheory.Limits.Coequalizers UniMath.CategoryTheory.Limits.Kernels UniMath.CategoryTheory.Limits.Cokernels UniMath.CategoryTheory.Limits.Pushouts UniMath.CategoryTheory.Limits.Pullbacks UniMath.CategoryTheory.Limits.BinDirectSums UniMath.CategoryTheory.Monics UniMath.CategoryTheory.Epis UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Equivalences.Core UniMath.CategoryTheory.CategoriesWithBinOps UniMath.CategoryTheory.PrecategoriesWithAbgrops UniMath.CategoryTheory.PreAdditive UniMath.CategoryTheory.Additive UniMath.CategoryTheory.Abelian UniMath.CategoryTheory.AbelianToAdditive UniMath.CategoryTheory.AdditiveFunctors UniMath.HomologicalAlgebra.Complexes UniMath.HomologicalAlgebra.KA UniMath.HomologicalAlgebra.TranslationFunctors