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

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

Proof of Theorem cofurid
Dummy variables 𝑥 𝑦 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 cofurid.1 . . . . . 6 𝐼 = (idfunc‘𝐶)
2 eqid 2763 . . . . . 6 (Base‘𝐶) = (Base‘𝐶)
3 cofulid.g . . . . . . . 8 (𝜑 → 𝐹 ∈ (𝐶 Func 𝐷))
4 funcrcl 18053 . . . . . . . 8 (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
53, 4syl 18 . . . . . . 7 (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
65simpld 500 . . . . . 6 (𝜑 → 𝐶 ∈ Cat)
71, 2, 6idfu1st 18069 . . . . 5 (𝜑 → (1st ‘𝐼) = ( I ↾ (Base‘𝐶)))
87coeq2d 5845 . . . 4 (𝜑 → ((1st ‘𝐹) ∘ (1st ‘𝐼)) = ((1st ‘𝐹) ∘ ( I ↾ (Base‘𝐶))))
9 eqid 2763 . . . . . 6 (Base‘𝐷) = (Base‘𝐷)
10 relfunc 18052 . . . . . . 7 Rel (𝐶 Func 𝐷)
11 1st2ndbr 8063 . . . . . . 7 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st ‘𝐹)(𝐶 Func 𝐷)(2nd ‘𝐹))
1210, 3, 11sylancr 599 . . . . . 6 (𝜑 → (1st ‘𝐹)(𝐶 Func 𝐷)(2nd ‘𝐹))
132, 9, 12funcf1 18056 . . . . 5 (𝜑 → (1st ‘𝐹):(Base‘𝐶)⟶(Base‘𝐷))
14 fcoi1 6767 . . . . 5 ((1st ‘𝐹):(Base‘𝐶)⟶(Base‘𝐷) → ((1st ‘𝐹) ∘ ( I ↾ (Base‘𝐶))) = (1st ‘𝐹))
1513, 14syl 18 . . . 4 (𝜑 → ((1st ‘𝐹) ∘ ( I ↾ (Base‘𝐶))) = (1st ‘𝐹))
168, 15eqtrd 2798 . . 3 (𝜑 → ((1st ‘𝐹) ∘ (1st ‘𝐼)) = (1st ‘𝐹))
1773ad2ant1 1151 . . . . . . . . . 10 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st ‘𝐼) = ( I ↾ (Base‘𝐶)))
1817fveq1d 6898 . . . . . . . . 9 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑥) = (( I ↾ (Base‘𝐶))‘𝑥))
19 fvresi 7188 . . . . . . . . . 10 (𝑥 ∈ (Base‘𝐶) → (( I ↾ (Base‘𝐶))‘𝑥) = 𝑥)
20193ad2ant2 1152 . . . . . . . . 9 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (Base‘𝐶))‘𝑥) = 𝑥)
2118, 20eqtrd 2798 . . . . . . . 8 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑥) = 𝑥)
2217fveq1d 6898 . . . . . . . . 9 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑦) = (( I ↾ (Base‘𝐶))‘𝑦))
23 fvresi 7188 . . . . . . . . . 10 (𝑦 ∈ (Base‘𝐶) → (( I ↾ (Base‘𝐶))‘𝑦) = 𝑦)
24233ad2ant3 1153 . . . . . . . . 9 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (Base‘𝐶))‘𝑦) = 𝑦)
2522, 24eqtrd 2798 . . . . . . . 8 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st ‘𝐼)‘𝑦) = 𝑦)
2621, 25oveq12d 7448 . . . . . . 7 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) = (𝑥(2nd ‘𝐹)𝑦))
2763ad2ant1 1151 . . . . . . . 8 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐶 ∈ Cat)
28 eqid 2763 . . . . . . . 8 (Hom ‘𝐶) = (Hom ‘𝐶)
29 simp2 1155 . . . . . . . 8 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑥 ∈ (Base‘𝐶))
30 simp3 1156 . . . . . . . 8 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑦 ∈ (Base‘𝐶))
311, 2, 27, 28, 29, 30idfu2nd 18067 . . . . . . 7 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd ‘𝐼)𝑦) = ( I ↾ (𝑥(Hom ‘𝐶)𝑦)))
3226, 31coeq12d 5847 . . . . . 6 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)) = ((𝑥(2nd ‘𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))))
33 eqid 2763 . . . . . . . 8 (Hom ‘𝐷) = (Hom ‘𝐷)
34123ad2ant1 1151 . . . . . . . 8 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st ‘𝐹)(𝐶 Func 𝐷)(2nd ‘𝐹))
352, 28, 33, 34, 29, 30funcf2 18058 . . . . . . 7 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd ‘𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st ‘𝐹)‘𝑥)(Hom ‘𝐷)((1st ‘𝐹)‘𝑦)))
36 fcoi1 6767 . . . . . . 7 ((𝑥(2nd ‘𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st ‘𝐹)‘𝑥)(Hom ‘𝐷)((1st ‘𝐹)‘𝑦)) → ((𝑥(2nd ‘𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) = (𝑥(2nd ‘𝐹)𝑦))
3735, 36syl 18 . . . . . 6 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((𝑥(2nd ‘𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) = (𝑥(2nd ‘𝐹)𝑦))
3832, 37eqtrd 2798 . . . . 5 ((𝜑 ∧ 𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)) = (𝑥(2nd ‘𝐹)𝑦))
3938mpoeq3dva 7507 . . . 4 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd ‘𝐹)𝑦)))
402, 12funcfn2 18059 . . . . 5 (𝜑 → (2nd ‘𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)))
41 fnov 7561 . . . . 5 ((2nd ‘𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd ‘𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd ‘𝐹)𝑦)))
4240, 41sylib 221 . . . 4 (𝜑 → (2nd ‘𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd ‘𝐹)𝑦)))
4339, 42eqtr4d 2801 . . 3 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦))) = (2nd ‘𝐹))
4416, 43opeq12d 4851 . 2 (𝜑 → ⟨((1st ‘𝐹) ∘ (1st ‘𝐼)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)))⟩ = ⟨(1st ‘𝐹), (2nd ‘𝐹)⟩)
451idfucl 18071 . . . 4 (𝐶 ∈ Cat → 𝐼 ∈ (𝐶 Func 𝐶))
466, 45syl 18 . . 3 (𝜑 → 𝐼 ∈ (𝐶 Func 𝐶))
472, 46, 3cofuval 18072 . 2 (𝜑 → (𝐹 ∘func 𝐼) = ⟨((1st ‘𝐹) ∘ (1st ‘𝐼)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st ‘𝐼)‘𝑥)(2nd ‘𝐹)((1st ‘𝐼)‘𝑦)) ∘ (𝑥(2nd ‘𝐼)𝑦)))⟩)
48 1st2nd 8060 . . 3 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = ⟨(1st ‘𝐹), (2nd ‘𝐹)⟩)
4910, 3, 48sylancr 599 . 2 (𝜑 → 𝐹 = ⟨(1st ‘𝐹), (2nd ‘𝐹)⟩)
5044, 47, 493eqtr4d 2808 1 (𝜑 → (𝐹 ∘func 𝐼) = 𝐹)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ∧ wa 401   ∧ w3a 1103   = wceq 1569   ∈ wcel 2146  ⟨cop 4838   class class class wbr 5106   I cid 5549   × cxp 5653   ↾ cres 5657   ∘ ccom 5659  Rel wrel 5660   Fn wfn 6542  ⟶wf 6543  ‘cfv 6547  (class class class)co 7430   ∈ cmpo 7432  1st c1st 8009  2nd c2nd 8010  Basecbs 17402  Hom chom 17454  Catccat 17853   Func cfunc 18044  idfunccidfu 18045   ∘func ccofu 18046
This proof depends on axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1827  ax-4 1841  ax-5 1944  ax-6 2001  ax-7 2042  ax-8 2148  ax-9 2156  ax-10 2179  ax-11 2196  ax-12 2215  ax-ext 2735  ax-rep 5235  ax-sep 5252  ax-nul 5263  ax-pow 5331  ax-pr 5395  ax-un 7761
This proof depends on definitions:  df-bi 210  df-an 402  df-or 862  df-3an 1105  df-tru 1572  df-fal 1582  df-ex 1812  df-nf 1816  df-sb 2101  df-mo 2567  df-eu 2597  df-clab 2742  df-cleq 2755  df-clel 2839  df-nfc 2913  df-ne 2960  df-ral 3081  df-rex 3091  df-rmo 3369  df-reu 3370  df-rab 3417  df-v 3456  df-sbc 3743  df-csb 3852  df-ss 3901  df-dif 4050  df-in 4094  df-un 4154  df-nul 4282  df-if 4486  df-pw 4562  df-sn 4589  df-pr 4591  df-op 4839  df-uni 4871  df-iun 4956  df-br 5107  df-opab 5171  df-mpt 5190  df-id 5550  df-xp 5661  df-rel 5662  df-cnv 5663  df-co 5664  df-dm 5665  df-rn 5666  df-res 5667  df-ima 5668  df-iota 6501  df-fun 6549  df-fn 6550  df-f 6551  df-f1 6552  df-fo 6553  df-f1o 6554  df-fv 6555  df-riota 7387  df-ov 7433  df-oprab 7434  df-mpo 7435  df-1st 8011  df-2nd 8012  df-map 8863  df-ixp 8940  df-cat 17857  df-cid 17858  df-func 18048  df-idfu 18049  df-cofu 18050
This theorem is used by:  catccatid  18296  fucoaltvallem  50637
  Copyright terms: Public domain W3C validator