proposition: Lemma SwitchMapEqnTo {M:PreAdditive} {a b c:M} (bc : BinDirectSum b c) (cb : BinDirectSum c b) (f:a-->b) (g:a-->c) : ToBinDirectSum bc f g · SwitchMap b c bc cb = ToBinDirectSum cb g f.
proof: Proof. unfold SwitchMap. apply ToBinDirectSumsEq. - rewrite rightDistribute. rewrite 2 assoc. rewrite 2 BinDirectSumPr1Commutes, BinDirectSumPr2Commutes. rewrite leftDistribute. rewrite 2 assoc'. rewrite (to_Unel2 cb). unfold to_unel. rewrite zeroRight. rewrite lunax. rewrite (to_IdIn1 cb). rewrite id_right. reflexivity. - rewrite assoc'. rewrite leftDistribute. rewrite (assoc' π₂ _ π₂). rewrite (to_Unel1 cb). unfold to_unel. rewrite zeroRight. rewrite runax. rewrite 2 assoc. rewrite BinDirectSumPr1Commutes, BinDirectSumPr2Commutes. rewrite assoc'. rewrite (to_IdIn2 cb). rewrite id_right. reflexivity. Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.Notations UniMath.MoreFoundations.PartA UniMath.Algebra.BinaryOperations UniMath.Algebra.Monoids UniMath.Algebra.Groups UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Monics UniMath.CategoryTheory.Epis UniMath.CategoryTheory.Limits.Zero UniMath.CategoryTheory.Limits.Kernels UniMath.CategoryTheory.Limits.Cokernels UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.BinCoproducts UniMath.CategoryTheory.Limits.Pullbacks UniMath.CategoryTheory.Limits.Pushouts UniMath.CategoryTheory.Limits.BinDirectSums UniMath.CategoryTheory.Limits.Opp UniMath.CategoryTheory.CategoriesWithBinOps UniMath.CategoryTheory.opp_precat UniMath.CategoryTheory.PrecategoriesWithAbgrops UniMath.CategoryTheory.PreAdditive UniMath.CategoryTheory.Morphisms UniMath.CategoryTheory.Additive UniMath.CategoryTheory.Subcategory.Full UniMath.MoreFoundations.Propositions