Proposition preserves_chosen_to_preserves_chosen_subobject_classifier {C₁ C₂ : univalent_category} {F : C₁ ⟶ C₂} {T₁ : Terminal C₁} {T₂ : Terminal C₂} {HF : preserves_terminal F} {Ω₁ : subobject_classifier T₁} {Ω₂ : subobject_classifier T₂} (HF' : preserves_chosen_to_chosen_subobject_classifier HF Ω₁ Ω₂) : preserves_chosen_subobject_classifier F T₁ T₂ HF Ω₁. Proof. use z_iso_to_is_subobject_classifier. - exact Ω₂. - exact (z_iso_inv (pr1 HF')). - cbn. refine (!_). use z_iso_inv_on_left. rewrite !assoc'. refine (!_). etrans. { apply maponpaths. apply (pr2 HF'). } rewrite !assoc. unfold true'. refine (_ @ id_left _). apply maponpaths_2. apply TerminalArrowEq. Qed.
Require Import UniMath.Foundations.All. Require Import UniMath.MoreFoundations.All. Require Import UniMath.CategoryTheory.Core.Prelude. Require Import UniMath.CategoryTheory.Limits.Terminal. Require Import UniMath.CategoryTheory.Limits.Pullbacks. Require Import UniMath.CategoryTheory.Limits.Preservation. Require Import UniMath.CategoryTheory.Monics. Require Import UniMath.CategoryTheory.SubobjectClassifier.SubobjectClassifier. Require Import UniMath.CategoryTheory.SubobjectClassifier.SubobjectClassifierIso.