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

Theorem cofulid 17859
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 2730 . . . . . 6 (Base‘𝐷) = (Base‘𝐷)
3 cofulid.g . . . . . . . 8 (𝜑𝐹 ∈ (𝐶 Func 𝐷))
4 funcrcl 17832 . . . . . . . 8 (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
53, 4syl 17 . . . . . . 7 (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
65simprd 495 . . . . . 6 (𝜑𝐷 ∈ Cat)
71, 2, 6idfu1st 17848 . . . . 5 (𝜑 → (1st𝐼) = ( I ↾ (Base‘𝐷)))
87coeq1d 5828 . . . 4 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)))
9 eqid 2730 . . . . . 6 (Base‘𝐶) = (Base‘𝐶)
10 relfunc 17831 . . . . . . 7 Rel (𝐶 Func 𝐷)
11 1st2ndbr 8024 . . . . . . 7 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
1210, 3, 11sylancr 587 . . . . . 6 (𝜑 → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
139, 2, 12funcf1 17835 . . . . 5 (𝜑 → (1st𝐹):(Base‘𝐶)⟶(Base‘𝐷))
14 fcoi2 6738 . . . . 5 ((1st𝐹):(Base‘𝐶)⟶(Base‘𝐷) → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
1513, 14syl 17 . . . 4 (𝜑 → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
168, 15eqtrd 2765 . . 3 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (1st𝐹))
1763ad2ant1 1133 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐷 ∈ Cat)
18 eqid 2730 . . . . . . . 8 (Hom ‘𝐷) = (Hom ‘𝐷)
1913ffvelcdmda 7059 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
20193adant3 1132 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
2113ffvelcdmda 7059 . . . . . . . . 9 ((𝜑𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
22213adant2 1131 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
231, 2, 17, 18, 20, 22idfu2nd 17846 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) = ( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))))
2423coeq1d 5828 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)))
25 eqid 2730 . . . . . . . 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 17837 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)))
30 fcoi2 6738 . . . . . . 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 2765 . . . . 5 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3332mpoeq3dva 7469 . . . 4 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
349, 12funcfn2 17838 . . . . 5 (𝜑 → (2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)))
35 fnov 7523 . . . . 5 ((2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3634, 35sylib 218 . . . 4 (𝜑 → (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3733, 36eqtr4d 2768 . . 3 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (2nd𝐹))
3816, 37opeq12d 4848 . 2 (𝜑 → ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩ = ⟨(1st𝐹), (2nd𝐹)⟩)
391idfucl 17850 . . . 4 (𝐷 ∈ Cat → 𝐼 ∈ (𝐷 Func 𝐷))
406, 39syl 17 . . 3 (𝜑𝐼 ∈ (𝐷 Func 𝐷))
419, 3, 40cofuval 17851 . 2 (𝜑 → (𝐼func 𝐹) = ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩)
42 1st2nd 8021 . . 3 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4310, 3, 42sylancr 587 . 2 (𝜑𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4438, 41, 433eqtr4d 2775 1 (𝜑 → (𝐼func 𝐹) = 𝐹)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395  w3a 1086   = wceq 1540  wcel 2109  cop 4598   class class class wbr 5110   I cid 5535   × cxp 5639  cres 5643  ccom 5645  Rel wrel 5646   Fn wfn 6509  wf 6510  cfv 6514  (class class class)co 7390  cmpo 7392  1st c1st 7969  2nd c2nd 7970  Basecbs 17186  Hom chom 17238  Catccat 17632   Func cfunc 17823  idfunccidfu 17824  func ccofu 17825
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1795  ax-4 1809  ax-5 1910  ax-6 1967  ax-7 2008  ax-8 2111  ax-9 2119  ax-10 2142  ax-11 2158  ax-12 2178  ax-ext 2702  ax-rep 5237  ax-sep 5254  ax-nul 5264  ax-pow 5323  ax-pr 5390  ax-un 7714
This theorem depends on definitions:  df-bi 207  df-an 396  df-or 848  df-3an 1088  df-tru 1543  df-fal 1553  df-ex 1780  df-nf 1784  df-sb 2066  df-mo 2534  df-eu 2563  df-clab 2709  df-cleq 2722  df-clel 2804  df-nfc 2879  df-ne 2927  df-ral 3046  df-rex 3055  df-rmo 3356  df-reu 3357  df-rab 3409  df-v 3452  df-sbc 3757  df-csb 3866  df-dif 3920  df-un 3922  df-in 3924  df-ss 3934  df-nul 4300  df-if 4492  df-pw 4568  df-sn 4593  df-pr 4595  df-op 4599  df-uni 4875  df-iun 4960  df-br 5111  df-opab 5173  df-mpt 5192  df-id 5536  df-xp 5647  df-rel 5648  df-cnv 5649  df-co 5650  df-dm 5651  df-rn 5652  df-res 5653  df-ima 5654  df-iota 6467  df-fun 6516  df-fn 6517  df-f 6518  df-f1 6519  df-fo 6520  df-f1o 6521  df-fv 6522  df-riota 7347  df-ov 7393  df-oprab 7394  df-mpo 7395  df-1st 7971  df-2nd 7972  df-map 8804  df-ixp 8874  df-cat 17636  df-cid 17637  df-func 17827  df-idfu 17828  df-cofu 17829
This theorem is referenced by:  catccatid  18075  uobeqw  49212
  Copyright terms: Public domain W3C validator