proposition: Proposition preserves_equalizer_from_pullback_terminal_map_unique : isaprop (∑ φ, φ · # F (EqualizerArrow (eqC x y f g)) = h).
proof: Proof. use invproofirrelevance. intros φ₁ φ₂. use subtypePath. { intro. apply homset_property. } use (MorphismsIntoPullbackEqual (isPullback_Pullback FP)). - cbn. enough (pr1 φ₁ · # F (PullbackPr1 P) · #F Δ = pr1 φ₂ · # F (PullbackPr1 P) · #F Δ) as help_mono. { pose (maponpaths (λ z, z · BinProductPr1 D Fyy) help_mono) as lem. cbn in lem. rewrite !assoc' in lem. rewrite <- !functor_comp in lem. rewrite !PullbackArrow_PullbackPr1 in lem. rewrite !id_right in lem. exact lem. } rewrite !assoc'. rewrite <- !functor_comp. rewrite (PullbackSqrCommutes P). rewrite !functor_comp. rewrite !assoc. apply maponpaths_2. exact (pr2 φ₁ @ !(pr2 φ₂)). - exact (pr2 φ₁ @ !(pr2 φ₂)). Qed.
imports: UniMath.Foundations.All UniMath.MoreFoundations.All UniMath.CategoryTheory.Core.Categories UniMath.CategoryTheory.Core.Functors UniMath.CategoryTheory.Core.NaturalTransformations UniMath.CategoryTheory.Core.Isos UniMath.CategoryTheory.Limits.Terminal UniMath.CategoryTheory.Limits.BinProducts UniMath.CategoryTheory.Limits.Equalizers UniMath.CategoryTheory.Limits.Pullbacks UniMath.CategoryTheory.Limits.PullbackConstructions UniMath.CategoryTheory.Limits.Preservation UniMath.CategoryTheory.Limits.EquivalencePreservation UniMath.CategoryTheory.Limits.LimitIso UniMath.CategoryTheory.Adjunctions.Core UniMath.CategoryTheory.Equivalences.Core UniMath.CategoryTheory.Equivalences.CompositesAndInverses UniMath.CategoryTheory.whiskering