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

Theorem cofulid 17969
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 2765 . . . . . 6 (Base‘𝐷) = (Base‘𝐷)
3 cofulid.g . . . . . . . 8 (𝜑𝐹 ∈ (𝐶 Func 𝐷))
4 funcrcl 17942 . . . . . . . 8 (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
53, 4syl 18 . . . . . . 7 (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
65simprd 501 . . . . . 6 (𝜑𝐷 ∈ Cat)
71, 2, 6idfu1st 17958 . . . . 5 (𝜑 → (1st𝐼) = ( I ↾ (Base‘𝐷)))
87coeq1d 5849 . . . 4 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)))
9 eqid 2765 . . . . . 6 (Base‘𝐶) = (Base‘𝐶)
10 relfunc 17941 . . . . . . 7 Rel (𝐶 Func 𝐷)
11 1st2ndbr 8045 . . . . . . 7 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
1210, 3, 11sylancr 599 . . . . . 6 (𝜑 → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
139, 2, 12funcf1 17945 . . . . 5 (𝜑 → (1st𝐹):(Base‘𝐶)⟶(Base‘𝐷))
14 fcoi2 6757 . . . . 5 ((1st𝐹):(Base‘𝐶)⟶(Base‘𝐷) → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
1513, 14syl 18 . . . 4 (𝜑 → (( I ↾ (Base‘𝐷)) ∘ (1st𝐹)) = (1st𝐹))
168, 15eqtrd 2800 . . 3 (𝜑 → ((1st𝐼) ∘ (1st𝐹)) = (1st𝐹))
1763ad2ant1 1151 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐷 ∈ Cat)
18 eqid 2765 . . . . . . . 8 (Hom ‘𝐷) = (Hom ‘𝐷)
1913ffvelcdmda 7083 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
20193adant3 1150 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑥) ∈ (Base‘𝐷))
2113ffvelcdmda 7083 . . . . . . . . 9 ((𝜑𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
22213adant2 1149 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐹)‘𝑦) ∈ (Base‘𝐷))
231, 2, 17, 18, 20, 22idfu2nd 17956 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) = ( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))))
2423coeq1d 5849 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)))
25 eqid 2765 . . . . . . . 8 (Hom ‘𝐶) = (Hom ‘𝐶)
26123ad2ant1 1151 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
27 simp2 1155 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑥 ∈ (Base‘𝐶))
28 simp3 1156 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑦 ∈ (Base‘𝐶))
299, 25, 18, 26, 27, 28funcf2 17947 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)))
30 fcoi2 6757 . . . . . . 7 ((𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)) → (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3129, 30syl 18 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦))) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3224, 31eqtrd 2800 . . . . 5 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)) = (𝑥(2nd𝐹)𝑦))
3332mpoeq3dva 7496 . . . 4 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
349, 12funcfn2 17948 . . . . 5 (𝜑 → (2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)))
35 fnov 7550 . . . . 5 ((2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3634, 35sylib 221 . . . 4 (𝜑 → (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
3733, 36eqtr4d 2803 . . 3 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦))) = (2nd𝐹))
3816, 37opeq12d 4848 . 2 (𝜑 → ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩ = ⟨(1st𝐹), (2nd𝐹)⟩)
391idfucl 17960 . . . 4 (𝐷 ∈ Cat → 𝐼 ∈ (𝐷 Func 𝐷))
406, 39syl 18 . . 3 (𝜑𝐼 ∈ (𝐷 Func 𝐷))
419, 3, 40cofuval 17961 . 2 (𝜑 → (𝐼func 𝐹) = ⟨((1st𝐼) ∘ (1st𝐹)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐹)‘𝑥)(2nd𝐼)((1st𝐹)‘𝑦)) ∘ (𝑥(2nd𝐹)𝑦)))⟩)
42 1st2nd 8042 . . 3 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4310, 3, 42sylancr 599 . 2 (𝜑𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4438, 41, 433eqtr4d 2810 1 (𝜑 → (𝐼func 𝐹) = 𝐹)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:  wi 4  wa 401  w3a 1103   = wceq 1570  wcel 2146  cop 4597   class class class wbr 5111   I cid 5557   × cxp 5661  cres 5665  ccom 5667  Rel wrel 5668   Fn wfn 6535  wf 6536  cfv 6540  (class class class)co 7419  cmpo 7421  1st c1st 7990  2nd c2nd 7991  Basecbs 17291  Hom chom 17343  Catccat 17742   Func cfunc 17933  idfunccidfu 17934  func ccofu 17935
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1828  ax-4 1842  ax-5 1943  ax-6 2000  ax-7 2041  ax-8 2148  ax-9 2156  ax-10 2179  ax-11 2195  ax-12 2216  ax-ext 2737  ax-rep 5240  ax-sep 5259  ax-nul 5271  ax-pow 5338  ax-pr 5406  ax-un 7742
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3an 1105  df-tru 1573  df-fal 1583  df-ex 1813  df-nf 1817  df-sb 2100  df-mo 2569  df-eu 2599  df-clab 2744  df-cleq 2757  df-clel 2840  df-nfc 2914  df-ne 2961  df-ral 3082  df-rex 3092  df-rmo 3371  df-reu 3372  df-rab 3419  df-v 3459  df-sbc 3747  df-csb 3855  df-dif 3909  df-un 3911  df-in 3913  df-ss 3923  df-nul 4287  df-if 4490  df-pw 4566  df-sn 4592  df-pr 4594  df-op 4598  df-uni 4875  df-iun 4960  df-br 5112  df-opab 5176  df-mpt 5195  df-id 5558  df-xp 5669  df-rel 5670  df-cnv 5671  df-co 5672  df-dm 5673  df-rn 5674  df-res 5675  df-ima 5676  df-iota 6496  df-fun 6542  df-fn 6543  df-f 6544  df-f1 6545  df-fo 6546  df-f1o 6547  df-fv 6548  df-riota 7376  df-ov 7422  df-oprab 7423  df-mpo 7424  df-1st 7992  df-2nd 7993  df-map 8832  df-ixp 8902  df-cat 17746  df-cid 17747  df-func 17937  df-idfu 17938  df-cofu 17939
This theorem is used by:  catccatid  18185  uobeqw  50054
  Copyright terms: Public domain W3C validator