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

Theorem cofulid 17521
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 2738 . . . . . 6 (Base‘𝐷) = (Base‘𝐷)
3 cofulid.g . . . . . . . 8 (𝜑𝐹 ∈ (𝐶 Func 𝐷))
4 funcrcl 17494 . . . . . . . 8 (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
53, 4syl 17 . . . . . . 7 (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
65simprd 495 . . . . . 6 (𝜑𝐷 ∈ Cat)
71, 2, 6idfu1st 17510 . . . . 5 (𝜑 → (1st𝐼) = ( I ↾ (Base‘𝐷)))
87coeq1d 5759 . . . 4 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)))
9 eqid 2738 . . . . . 6 (Base‘𝐶) = (Base‘𝐶)
10 relfunc 17493 . . . . . . 7 Rel (𝐶 Func 𝐷)
11 1st2ndbr 7856 . . . . . . 7 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
1210, 3, 11sylancr 586 . . . . . 6 (𝜑 → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
139, 2, 12funcf1 17497 . . . . 5 (𝜑 → (1st𝐹):(Base‘𝐶)⟶(Base‘𝐷))
14 fcoi2 6633 . . . . 5 ((1st𝐹):(Base‘𝐶)⟶(Base‘𝐷) → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
1513, 14syl 17 . . . 4 (𝜑 → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
168, 15eqtrd 2778 . . 3 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (1st𝐹))
1763ad2ant1 1131 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐷 ∈ Cat)
18 eqid 2738 . . . . . . . 8 (Hom ‘𝐷) = (Hom ‘𝐷)
1913ffvelrnda 6943 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
20193adant3 1130 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
2113ffvelrnda 6943 . . . . . . . . 9 ((𝜑𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
22213adant2 1129 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
231, 2, 17, 18, 20, 22idfu2nd 17508 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) = ( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))))
2423coeq1d 5759 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)))
25 eqid 2738 . . . . . . . 8 (Hom ‘𝐶) = (Hom ‘𝐶)
26123ad2ant1 1131 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
27 simp2 1135 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑥 ∈ (Base‘𝐶))
28 simp3 1136 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑦 ∈ (Base‘𝐶))
299, 25, 18, 26, 27, 28funcf2 17499 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)))
30 fcoi2 6633 . . . . . . 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 2778 . . . . 5 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3332mpoeq3dva 7330 . . . 4 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
349, 12funcfn2 17500 . . . . 5 (𝜑 → (2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)))
35 fnov 7383 . . . . 5 ((2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3634, 35sylib 217 . . . 4 (𝜑 → (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3733, 36eqtr4d 2781 . . 3 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (2nd𝐹))
3816, 37opeq12d 4809 . 2 (𝜑 → ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩ = ⟨(1st𝐹), (2nd𝐹)⟩)
391idfucl 17512 . . . 4 (𝐷 ∈ Cat → 𝐼 ∈ (𝐷 Func 𝐷))
406, 39syl 17 . . 3 (𝜑𝐼 ∈ (𝐷 Func 𝐷))
419, 3, 40cofuval 17513 . 2 (𝜑 → (𝐼func 𝐹) = ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩)
42 1st2nd 7853 . . 3 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4310, 3, 42sylancr 586 . 2 (𝜑𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4438, 41, 433eqtr4d 2788 1 (𝜑 → (𝐼func 𝐹) = 𝐹)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395  w3a 1085   = wceq 1539  wcel 2108  cop 4564   class class class wbr 5070   I cid 5479   × cxp 5578  cres 5582  ccom 5584  Rel wrel 5585   Fn wfn 6413  wf 6414  cfv 6418  (class class class)co 7255  cmpo 7257  1st c1st 7802  2nd c2nd 7803  Basecbs 16840  Hom chom 16899  Catccat 17290   Func cfunc 17485  idfunccidfu 17486  func ccofu 17487
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1799  ax-4 1813  ax-5 1914  ax-6 1972  ax-7 2012  ax-8 2110  ax-9 2118  ax-10 2139  ax-11 2156  ax-12 2173  ax-ext 2709  ax-rep 5205  ax-sep 5218  ax-nul 5225  ax-pow 5283  ax-pr 5347  ax-un 7566
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 844  df-3an 1087  df-tru 1542  df-fal 1552  df-ex 1784  df-nf 1788  df-sb 2069  df-mo 2540  df-eu 2569  df-clab 2716  df-cleq 2730  df-clel 2817  df-nfc 2888  df-ne 2943  df-ral 3068  df-rex 3069  df-reu 3070  df-rmo 3071  df-rab 3072  df-v 3424  df-sbc 3712  df-csb 3829  df-dif 3886  df-un 3888  df-in 3890  df-ss 3900  df-nul 4254  df-if 4457  df-pw 4532  df-sn 4559  df-pr 4561  df-op 4565  df-uni 4837  df-iun 4923  df-br 5071  df-opab 5133  df-mpt 5154  df-id 5480  df-xp 5586  df-rel 5587  df-cnv 5588  df-co 5589  df-dm 5590  df-rn 5591  df-res 5592  df-ima 5593  df-iota 6376  df-fun 6420  df-fn 6421  df-f 6422  df-f1 6423  df-fo 6424  df-f1o 6425  df-fv 6426  df-riota 7212  df-ov 7258  df-oprab 7259  df-mpo 7260  df-1st 7804  df-2nd 7805  df-map 8575  df-ixp 8644  df-cat 17294  df-cid 17295  df-func 17489  df-idfu 17490  df-cofu 17491
This theorem is referenced by:  catccatid  17737
  Copyright terms: Public domain W3C validator