proposition: Lemma lawvere_from_to {a b} (f : F a ~> b) : ψ' E (φ' E f) ≈ f.
proof: Proof. intros. unfold φ', ψ'. pose proof (@lawvere_from_functorial _ _ (`2 (fobj[to (lawvere_iso E)] ((a, b); f))) a b (fst (to (`1 (projF E) ((a, b); f)))) (snd (`1 (projF E) ((a, b); f))⁻¹)) as X. etransitivity. - symmetry. now apply X. - clear X. symmetry. etransitivity. + spose (ψ_φ_equiv ((a, b); f)) as X1. symmetry in X1. now apply X1. + unfold θ, κ, ψ. apply compose_respects; [|reflexivity]. rewrite <- !comp_assoc. apply compose_respects; [reflexivity|]. spose (surjective_tripleG (φ E ((a, b); f))) as X2. unfold φ in *. simpl. rewrite <- X2. solve [ reflexivity | simpl; unfold lawvere_to, θ, κ, ψ; rewrite !comp_assoc; reflexivity ]. Qed.
imports: Category.Lib Category.Theory.Category Category.Theory.Isomorphism Category.Theory.Functor Category.Theory.Natural.Transformation Category.Theory.Adjunction Category.Adjunction.Natural.Transformation Category.Adjunction.Natural.Transformation.Universal Category.Construction.Comma Category.Construction.Product Category.Instance.Cat Category.Instance.Fun Category.Instance.Sets