MPE Home Metamath Proof Explorer < Previous   Next >
Nearby theorems
Mirrors  >  Home  >  MPE Home  >  Th. List  >  cofulid Structured version   Visualization version   GIF version

Theorem cofulid 17954
Description: The identity functor is a left identity for composition. (Contributed by Mario Carneiro, 3-Jan-2017.)
Hypotheses
Ref Expression
cofulid.g (𝜑𝐹 ∈ (𝐶 Func 𝐷))
cofulid.1 𝐼 = (idfunc𝐷)
Assertion
Ref Expression
cofulid (𝜑 → (𝐼func 𝐹) = 𝐹)

Proof of Theorem cofulid
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 cofulid.1 . . . . . 6 𝐼 = (idfunc𝐷)
2 eqid 2740 . . . . . 6 (Base‘𝐷) = (Base‘𝐷)
3 cofulid.g . . . . . . . 8 (𝜑𝐹 ∈ (𝐶 Func 𝐷))
4 funcrcl 17927 . . . . . . . 8 (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
53, 4syl 17 . . . . . . 7 (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
65simprd 495 . . . . . 6 (𝜑𝐷 ∈ Cat)
71, 2, 6idfu1st 17943 . . . . 5 (𝜑 → (1st𝐼) = ( I ↾ (Base‘𝐷)))
87coeq1d 5886 . . . 4 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)))
9 eqid 2740 . . . . . 6 (Base‘𝐶) = (Base‘𝐶)
10 relfunc 17926 . . . . . . 7 Rel (𝐶 Func 𝐷)
11 1st2ndbr 8083 . . . . . . 7 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
1210, 3, 11sylancr 586 . . . . . 6 (𝜑 → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
139, 2, 12funcf1 17930 . . . . 5 (𝜑 → (1st𝐹):(Base‘𝐶)⟶(Base‘𝐷))
14 fcoi2 6796 . . . . 5 ((1st𝐹):(Base‘𝐶)⟶(Base‘𝐷) → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
1513, 14syl 17 . . . 4 (𝜑 → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
168, 15eqtrd 2780 . . 3 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (1st𝐹))
1763ad2ant1 1133 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐷 ∈ Cat)
18 eqid 2740 . . . . . . . 8 (Hom ‘𝐷) = (Hom ‘𝐷)
1913ffvelcdmda 7118 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
20193adant3 1132 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
2113ffvelcdmda 7118 . . . . . . . . 9 ((𝜑𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
22213adant2 1131 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
231, 2, 17, 18, 20, 22idfu2nd 17941 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) = ( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))))
2423coeq1d 5886 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)))
25 eqid 2740 . . . . . . . 8 (Hom ‘𝐶) = (Hom ‘𝐶)
26123ad2ant1 1133 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
27 simp2 1137 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑥 ∈ (Base‘𝐶))
28 simp3 1138 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑦 ∈ (Base‘𝐶))
299, 25, 18, 26, 27, 28funcf2 17932 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)))
30 fcoi2 6796 . . . . . . 7 ((𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)) → (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3129, 30syl 17 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3224, 31eqtrd 2780 . . . . 5 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3332mpoeq3dva 7527 . . . 4 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
349, 12funcfn2 17933 . . . . 5 (𝜑 → (2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)))
35 fnov 7581 . . . . 5 ((2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3634, 35sylib 218 . . . 4 (𝜑 → (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3733, 36eqtr4d 2783 . . 3 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (2nd𝐹))
3816, 37opeq12d 4905 . 2 (𝜑 → ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩ = ⟨(1st𝐹), (2nd𝐹)⟩)
391idfucl 17945 . . . 4 (𝐷 ∈ Cat → 𝐼 ∈ (𝐷 Func 𝐷))
406, 39syl 17 . . 3 (𝜑𝐼 ∈ (𝐷 Func 𝐷))
419, 3, 40cofuval 17946 . 2 (𝜑 → (𝐼func 𝐹) = ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩)
42 1st2nd 8080 . . 3 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4310, 3, 42sylancr 586 . 2 (𝜑𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4438, 41, 433eqtr4d 2790 1 (𝜑 → (𝐼func 𝐹) = 𝐹)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395  w3a 1087   = wceq 1537  wcel 2108  cop 4654   class class class wbr 5166   I cid 5592   × cxp 5698  cres 5702  ccom 5704  Rel wrel 5705   Fn wfn 6568  wf 6569  cfv 6573  (class class class)co 7448  cmpo 7450  1st c1st 8028  2nd c2nd 8029  Basecbs 17258  Hom chom 17322  Catccat 17722   Func cfunc 17918  idfunccidfu 17919  func ccofu 17920
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1793  ax-4 1807  ax-5 1909  ax-6 1967  ax-7 2007  ax-8 2110  ax-9 2118  ax-10 2141  ax-11 2158  ax-12 2178  ax-ext 2711  ax-rep 5303  ax-sep 5317  ax-nul 5324  ax-pow 5383  ax-pr 5447  ax-un 7770
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 847  df-3an 1089  df-tru 1540  df-fal 1550  df-ex 1778  df-nf 1782  df-sb 2065  df-mo 2543  df-eu 2572  df-clab 2718  df-cleq 2732  df-clel 2819  df-nfc 2895  df-ne 2947  df-ral 3068  df-rex 3077  df-rmo 3388  df-reu 3389  df-rab 3444  df-v 3490  df-sbc 3805  df-csb 3922  df-dif 3979  df-un 3981  df-in 3983  df-ss 3993  df-nul 4353  df-if 4549  df-pw 4624  df-sn 4649  df-pr 4651  df-op 4655  df-uni 4932  df-iun 5017  df-br 5167  df-opab 5229  df-mpt 5250  df-id 5593  df-xp 5706  df-rel 5707  df-cnv 5708  df-co 5709  df-dm 5710  df-rn 5711  df-res 5712  df-ima 5713  df-iota 6525  df-fun 6575  df-fn 6576  df-f 6577  df-f1 6578  df-fo 6579  df-f1o 6580  df-fv 6581  df-riota 7404  df-ov 7451  df-oprab 7452  df-mpo 7453  df-1st 8030  df-2nd 8031  df-map 8886  df-ixp 8956  df-cat 17726  df-cid 17727  df-func 17922  df-idfu 17923  df-cofu 17924
This theorem is referenced by:  catccatid  18173
  Copyright terms: Public domain W3C validator