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

Theorem cofurid 16772
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 2760 . . . . . 6 (Base‘𝐶) = (Base‘𝐶)
3 cofulid.g . . . . . . . 8 (𝜑𝐹 ∈ (𝐶 Func 𝐷))
4 funcrcl 16744 . . . . . . . 8 (𝐹 ∈ (𝐶 Func 𝐷) → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
53, 4syl 17 . . . . . . 7 (𝜑 → (𝐶 ∈ Cat ∧ 𝐷 ∈ Cat))
65simpld 477 . . . . . 6 (𝜑𝐶 ∈ Cat)
71, 2, 6idfu1st 16760 . . . . 5 (𝜑 → (1st𝐼) = ( I ↾ (Base‘𝐶)))
87coeq2d 5440 . . . 4 (𝜑 → ((1st𝐹) ∘ (1st𝐼)) = ((1st𝐹) ∘ ( I ↾ (Base‘𝐶))))
9 eqid 2760 . . . . . 6 (Base‘𝐷) = (Base‘𝐷)
10 relfunc 16743 . . . . . . 7 Rel (𝐶 Func 𝐷)
11 1st2ndbr 7385 . . . . . . 7 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
1210, 3, 11sylancr 698 . . . . . 6 (𝜑 → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
132, 9, 12funcf1 16747 . . . . 5 (𝜑 → (1st𝐹):(Base‘𝐶)⟶(Base‘𝐷))
14 fcoi1 6239 . . . . 5 ((1st𝐹):(Base‘𝐶)⟶(Base‘𝐷) → ((1st𝐹) ∘ ( I ↾ (Base‘𝐶))) = (1st𝐹))
1513, 14syl 17 . . . 4 (𝜑 → ((1st𝐹) ∘ ( I ↾ (Base‘𝐶))) = (1st𝐹))
168, 15eqtrd 2794 . . 3 (𝜑 → ((1st𝐹) ∘ (1st𝐼)) = (1st𝐹))
1773ad2ant1 1128 . . . . . . . . . 10 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st𝐼) = ( I ↾ (Base‘𝐶)))
1817fveq1d 6355 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐼)‘𝑥) = (( I ↾ (Base‘𝐶))‘𝑥))
19 fvresi 6604 . . . . . . . . . 10 (𝑥 ∈ (Base‘𝐶) → (( I ↾ (Base‘𝐶))‘𝑥) = 𝑥)
20193ad2ant2 1129 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (Base‘𝐶))‘𝑥) = 𝑥)
2118, 20eqtrd 2794 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐼)‘𝑥) = 𝑥)
2217fveq1d 6355 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐼)‘𝑦) = (( I ↾ (Base‘𝐶))‘𝑦))
23 fvresi 6604 . . . . . . . . . 10 (𝑦 ∈ (Base‘𝐶) → (( I ↾ (Base‘𝐶))‘𝑦) = 𝑦)
24233ad2ant3 1130 . . . . . . . . 9 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (( I ↾ (Base‘𝐶))‘𝑦) = 𝑦)
2522, 24eqtrd 2794 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((1st𝐼)‘𝑦) = 𝑦)
2621, 25oveq12d 6832 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) = (𝑥(2nd𝐹)𝑦))
2763ad2ant1 1128 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝐶 ∈ Cat)
28 eqid 2760 . . . . . . . 8 (Hom ‘𝐶) = (Hom ‘𝐶)
29 simp2 1132 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑥 ∈ (Base‘𝐶))
30 simp3 1133 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → 𝑦 ∈ (Base‘𝐶))
311, 2, 27, 28, 29, 30idfu2nd 16758 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd𝐼)𝑦) = ( I ↾ (𝑥(Hom ‘𝐶)𝑦)))
3226, 31coeq12d 5442 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) ∘ (𝑥(2nd𝐼)𝑦)) = ((𝑥(2nd𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))))
33 eqid 2760 . . . . . . . 8 (Hom ‘𝐷) = (Hom ‘𝐷)
34123ad2ant1 1128 . . . . . . . 8 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (1st𝐹)(𝐶 Func 𝐷)(2nd𝐹))
352, 28, 33, 34, 29, 30funcf2 16749 . . . . . . 7 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → (𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)))
36 fcoi1 6239 . . . . . . 7 ((𝑥(2nd𝐹)𝑦):(𝑥(Hom ‘𝐶)𝑦)⟶(((1st𝐹)‘𝑥)(Hom ‘𝐷)((1st𝐹)‘𝑦)) → ((𝑥(2nd𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) = (𝑥(2nd𝐹)𝑦))
3735, 36syl 17 . . . . . 6 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((𝑥(2nd𝐹)𝑦) ∘ ( I ↾ (𝑥(Hom ‘𝐶)𝑦))) = (𝑥(2nd𝐹)𝑦))
3832, 37eqtrd 2794 . . . . 5 ((𝜑𝑥 ∈ (Base‘𝐶) ∧ 𝑦 ∈ (Base‘𝐶)) → ((((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) ∘ (𝑥(2nd𝐼)𝑦)) = (𝑥(2nd𝐹)𝑦))
3938mpt2eq3dva 6885 . . . 4 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) ∘ (𝑥(2nd𝐼)𝑦))) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
402, 12funcfn2 16750 . . . . 5 (𝜑 → (2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)))
41 fnov 6934 . . . . 5 ((2nd𝐹) Fn ((Base‘𝐶) × (Base‘𝐶)) ↔ (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
4240, 41sylib 208 . . . 4 (𝜑 → (2nd𝐹) = (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ (𝑥(2nd𝐹)𝑦)))
4339, 42eqtr4d 2797 . . 3 (𝜑 → (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) ∘ (𝑥(2nd𝐼)𝑦))) = (2nd𝐹))
4416, 43opeq12d 4561 . 2 (𝜑 → ⟨((1st𝐹) ∘ (1st𝐼)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) ∘ (𝑥(2nd𝐼)𝑦)))⟩ = ⟨(1st𝐹), (2nd𝐹)⟩)
451idfucl 16762 . . . 4 (𝐶 ∈ Cat → 𝐼 ∈ (𝐶 Func 𝐶))
466, 45syl 17 . . 3 (𝜑𝐼 ∈ (𝐶 Func 𝐶))
472, 46, 3cofuval 16763 . 2 (𝜑 → (𝐹func 𝐼) = ⟨((1st𝐹) ∘ (1st𝐼)), (𝑥 ∈ (Base‘𝐶), 𝑦 ∈ (Base‘𝐶) ↦ ((((1st𝐼)‘𝑥)(2nd𝐹)((1st𝐼)‘𝑦)) ∘ (𝑥(2nd𝐼)𝑦)))⟩)
48 1st2nd 7382 . . 3 ((Rel (𝐶 Func 𝐷) ∧ 𝐹 ∈ (𝐶 Func 𝐷)) → 𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
4910, 3, 48sylancr 698 . 2 (𝜑𝐹 = ⟨(1st𝐹), (2nd𝐹)⟩)
5044, 47, 493eqtr4d 2804 1 (𝜑 → (𝐹func 𝐼) = 𝐹)
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 383  w3a 1072   = wceq 1632  wcel 2139  cop 4327   class class class wbr 4804   I cid 5173   × cxp 5264  cres 5268  ccom 5270  Rel wrel 5271   Fn wfn 6044  wf 6045  cfv 6049  (class class class)co 6814  cmpt2 6816  1st c1st 7332  2nd c2nd 7333  Basecbs 16079  Hom chom 16174  Catccat 16546   Func cfunc 16735  idfunccidfu 16736  func ccofu 16737
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1871  ax-4 1886  ax-5 1988  ax-6 2054  ax-7 2090  ax-8 2141  ax-9 2148  ax-10 2168  ax-11 2183  ax-12 2196  ax-13 2391  ax-ext 2740  ax-rep 4923  ax-sep 4933  ax-nul 4941  ax-pow 4992  ax-pr 5055  ax-un 7115
This theorem depends on definitions:  df-bi 197  df-or 384  df-an 385  df-3an 1074  df-tru 1635  df-ex 1854  df-nf 1859  df-sb 2047  df-eu 2611  df-mo 2612  df-clab 2747  df-cleq 2753  df-clel 2756  df-nfc 2891  df-ne 2933  df-ral 3055  df-rex 3056  df-reu 3057  df-rmo 3058  df-rab 3059  df-v 3342  df-sbc 3577  df-csb 3675  df-dif 3718  df-un 3720  df-in 3722  df-ss 3729  df-nul 4059  df-if 4231  df-pw 4304  df-sn 4322  df-pr 4324  df-op 4328  df-uni 4589  df-iun 4674  df-br 4805  df-opab 4865  df-mpt 4882  df-id 5174  df-xp 5272  df-rel 5273  df-cnv 5274  df-co 5275  df-dm 5276  df-rn 5277  df-res 5278  df-ima 5279  df-iota 6012  df-fun 6051  df-fn 6052  df-f 6053  df-f1 6054  df-fo 6055  df-f1o 6056  df-fv 6057  df-riota 6775  df-ov 6817  df-oprab 6818  df-mpt2 6819  df-1st 7334  df-2nd 7335  df-map 8027  df-ixp 8077  df-cat 16550  df-cid 16551  df-func 16739  df-idfu 16740  df-cofu 16741
This theorem is referenced by:  catccatid  16973
  Copyright terms: Public domain W3C validator