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

Theorem isfuncd 18049
Description: Deduce that an operation is a functor of categories. (Contributed by Mario Carneiro, 4-Jan-2017.)
Hypotheses
Ref Expression
isfunc.b 𝐵 = (Base‘𝐷)
isfunc.c 𝐶 = (Base‘𝐸)
isfunc.h 𝐻 = (Hom ‘𝐷)
isfunc.j 𝐽 = (Hom ‘𝐸)
isfunc.1 1 = (Id‘𝐷)
isfunc.i 𝐼 = (Id‘𝐸)
isfunc.x · = (comp‘𝐷)
isfunc.o 𝑂 = (comp‘𝐸)
isfunc.d (𝜑 → 𝐷 ∈ Cat)
isfunc.e (𝜑 → 𝐸 ∈ Cat)
isfuncd.1 (𝜑 → 𝐹:𝐵⟶𝐶)
isfuncd.2 (𝜑 → 𝐺 Fn (𝐵 × 𝐵))
isfuncd.3 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵)) → (𝑥𝐺𝑦):(𝑥𝐻𝑦)⟶((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
isfuncd.4 ((𝜑 ∧ 𝑥 ∈ 𝐵) → ((𝑥𝐺𝑥)‘( 1 ‘𝑥)) = (𝐼‘(𝐹‘𝑥)))
isfuncd.5 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐵) ∧ (𝑚 ∈ (𝑥𝐻𝑦) ∧ 𝑛 ∈ (𝑦𝐻𝑧))) → ((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))
Assertion
Ref Expression
isfuncd (𝜑 → 𝐹(𝐷 Func 𝐸)𝐺)
Distinct variable groups:   𝑚,𝑛,𝑥,𝑦,𝑧,𝐵   𝐷,𝑚,𝑛,𝑥,𝑦,𝑧   𝑚,𝐸,𝑛,𝑥,𝑦,𝑧   𝑚,𝐻,𝑛,𝑥,𝑦,𝑧   𝑚,𝐹,𝑛,𝑥,𝑦,𝑧   𝑚,𝐺,𝑛,𝑥,𝑦,𝑧   𝑥,𝐽,𝑦,𝑧   𝜑,𝑚,𝑛,𝑥,𝑦,𝑧
Allowed substitution hints:   𝐶(𝑥, 𝑦, 𝑧, 𝑚, 𝑛)   · (𝑥, 𝑦, 𝑧, 𝑚, 𝑛)   1 (𝑥, 𝑦, 𝑧, 𝑚, 𝑛)   𝐼(𝑥, 𝑦, 𝑧, 𝑚, 𝑛)   𝐽(𝑚, 𝑛)   𝑂(𝑥, 𝑦, 𝑧, 𝑚, 𝑛)

Proof of Theorem isfuncd
StepHypRef Expression
1 isfuncd.1 . 2 (𝜑 → 𝐹:𝐵⟶𝐶)
2 isfuncd.2 . . . 4 (𝜑 → 𝐺 Fn (𝐵 × 𝐵))
3 isfunc.b . . . . . 6 𝐵 = (Base‘𝐷)
43fvexi 6904 . . . . 5 𝐵 ∈ V
54, 4xpex 7771 . . . 4 (𝐵 × 𝐵) ∈ V
6 fnex 7227 . . . 4 ((𝐺 Fn (𝐵 × 𝐵) ∧ (𝐵 × 𝐵) ∈ V) → 𝐺 ∈ V)
72, 5, 6sylancl 598 . . 3 (𝜑 → 𝐺 ∈ V)
8 isfuncd.3 . . . . . 6 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵)) → (𝑥𝐺𝑦):(𝑥𝐻𝑦)⟶((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
9 ovex 7457 . . . . . . 7 ((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ∈ V
10 ovex 7457 . . . . . . 7 (𝑥𝐻𝑦) ∈ V
119, 10elmap 8906 . . . . . 6 ((𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)) ↔ (𝑥𝐺𝑦):(𝑥𝐻𝑦)⟶((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
128, 11sylibr 237 . . . . 5 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵)) → (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
1312ralrimivva 3205 . . . 4 (𝜑 → ∀𝑥 ∈ 𝐵 ∀𝑦 ∈ 𝐵 (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
14 fveq2 6890 . . . . . . 7 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐺‘𝑧) = (𝐺‘⟨𝑥, 𝑦⟩))
15 df-ov 7427 . . . . . . 7 (𝑥𝐺𝑦) = (𝐺‘⟨𝑥, 𝑦⟩)
1614, 15eqtr4di 2813 . . . . . 6 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐺‘𝑧) = (𝑥𝐺𝑦))
17 vex 3454 . . . . . . . . . 10 𝑥 ∈ V
18 vex 3454 . . . . . . . . . 10 𝑦 ∈ V
1917, 18op1std 8015 . . . . . . . . 9 (𝑧 = ⟨𝑥, 𝑦⟩ → (1st ‘𝑧) = 𝑥)
2019fveq2d 6894 . . . . . . . 8 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐹‘(1st ‘𝑧)) = (𝐹‘𝑥))
2117, 18op2ndd 8016 . . . . . . . . 9 (𝑧 = ⟨𝑥, 𝑦⟩ → (2nd ‘𝑧) = 𝑦)
2221fveq2d 6894 . . . . . . . 8 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐹‘(2nd ‘𝑧)) = (𝐹‘𝑦))
2320, 22oveq12d 7442 . . . . . . 7 (𝑧 = ⟨𝑥, 𝑦⟩ → ((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) = ((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
24 fveq2 6890 . . . . . . . 8 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐻‘𝑧) = (𝐻‘⟨𝑥, 𝑦⟩))
25 df-ov 7427 . . . . . . . 8 (𝑥𝐻𝑦) = (𝐻‘⟨𝑥, 𝑦⟩)
2624, 25eqtr4di 2813 . . . . . . 7 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐻‘𝑧) = (𝑥𝐻𝑦))
2723, 26oveq12d 7442 . . . . . 6 (𝑧 = ⟨𝑥, 𝑦⟩ → (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) = (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
2816, 27eleq12d 2854 . . . . 5 (𝑧 = ⟨𝑥, 𝑦⟩ → ((𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) ↔ (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦))))
2928ralxp 5819 . . . 4 (∀𝑧 ∈ (𝐵 × 𝐵)(𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) ↔ ∀𝑥 ∈ 𝐵 ∀𝑦 ∈ 𝐵 (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
3013, 29sylibr 237 . . 3 (𝜑 → ∀𝑧 ∈ (𝐵 × 𝐵)(𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)))
31 elixp2 8936 . . 3 (𝐺 ∈ X𝑧 ∈ (𝐵 × 𝐵)(((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) ↔ (𝐺 ∈ V ∧ 𝐺 Fn (𝐵 × 𝐵) ∧ ∀𝑧 ∈ (𝐵 × 𝐵)(𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧))))
327, 2, 30, 31syl3anbrc 1362 . 2 (𝜑 → 𝐺 ∈ X𝑧 ∈ (𝐵 × 𝐵)(((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)))
33 isfuncd.4 . . . 4 ((𝜑 ∧ 𝑥 ∈ 𝐵) → ((𝑥𝐺𝑥)‘( 1 ‘𝑥)) = (𝐼‘(𝐹‘𝑥)))
34 isfuncd.5 . . . . . . . . 9 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐵) ∧ (𝑚 ∈ (𝑥𝐻𝑦) ∧ 𝑛 ∈ (𝑦𝐻𝑧))) → ((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))
35343expia 1139 . . . . . . . 8 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐵)) → ((𝑚 ∈ (𝑥𝐻𝑦) ∧ 𝑛 ∈ (𝑦𝐻𝑧)) → ((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚))))
36353exp2 1373 . . . . . . 7 (𝜑 → (𝑥 ∈ 𝐵 → (𝑦 ∈ 𝐵 → (𝑧 ∈ 𝐵 → ((𝑚 ∈ (𝑥𝐻𝑦) ∧ 𝑛 ∈ (𝑦𝐻𝑧)) → ((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))))))
3736imp43 433 . . . . . 6 (((𝜑 ∧ 𝑥 ∈ 𝐵) ∧ (𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐵)) → ((𝑚 ∈ (𝑥𝐻𝑦) ∧ 𝑛 ∈ (𝑦𝐻𝑧)) → ((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚))))
3837ralrimivv 3203 . . . . 5 (((𝜑 ∧ 𝑥 ∈ 𝐵) ∧ (𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐵)) → ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))
3938ralrimivva 3205 . . . 4 ((𝜑 ∧ 𝑥 ∈ 𝐵) → ∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))
4033, 39jca 521 . . 3 ((𝜑 ∧ 𝑥 ∈ 𝐵) → (((𝑥𝐺𝑥)‘( 1 ‘𝑥)) = (𝐼‘(𝐹‘𝑥)) ∧ ∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚))))
4140ralrimiva 3154 . 2 (𝜑 → ∀𝑥 ∈ 𝐵 (((𝑥𝐺𝑥)‘( 1 ‘𝑥)) = (𝐼‘(𝐹‘𝑥)) ∧ ∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚))))
42 isfunc.c . . 3 𝐶 = (Base‘𝐸)
43 isfunc.h . . 3 𝐻 = (Hom ‘𝐷)
44 isfunc.j . . 3 𝐽 = (Hom ‘𝐸)
45 isfunc.1 . . 3 1 = (Id‘𝐷)
46 isfunc.i . . 3 𝐼 = (Id‘𝐸)
47 isfunc.x . . 3 · = (comp‘𝐷)
48 isfunc.o . . 3 𝑂 = (comp‘𝐸)
49 isfunc.d . . 3 (𝜑 → 𝐷 ∈ Cat)
50 isfunc.e . . 3 (𝜑 → 𝐸 ∈ Cat)
513, 42, 43, 44, 45, 46, 47, 48, 49, 50isfunc 18048 . 2 (𝜑 → (𝐹(𝐷 Func 𝐸)𝐺 ↔ (𝐹:𝐵⟶𝐶 ∧ 𝐺 ∈ X𝑧 ∈ (𝐵 × 𝐵)(((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) ∧ ∀𝑥 ∈ 𝐵 (((𝑥𝐺𝑥)‘( 1 ‘𝑥)) = (𝐼‘(𝐹‘𝑥)) ∧ ∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚))))))
521, 32, 41, 51mpbir3and 1361 1 (𝜑 → 𝐹(𝐷 Func 𝐸)𝐺)
Colors of variables:    wff setvar class
This proof depends on syntax axioms:   → wi 4   ∧ wa 401   ∧ w3a 1103   = wceq 1569   ∈ wcel 2144  ∀wral 3076  Vcvv 3450  ⟨cop 4834   class class class wbr 5102   × cxp 5649   Fn wfn 6538  ⟶wf 6539  ‘cfv 6543  (class class class)co 7424  1st c1st 8003  2nd c2nd 8004   ↑m cmap 8854  Xcixp 8932  Basecbs 17396  Hom chom 17448  compcco 17449  Catccat 17847  Idccid 17848   Func cfunc 18038
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 1942  ax-6 1999  ax-7 2040  ax-8 2146  ax-9 2154  ax-10 2177  ax-11 2193  ax-12 2212  ax-ext 2732  ax-rep 5231  ax-sep 5248  ax-nul 5259  ax-pow 5327  ax-pr 5391  ax-un 7755
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 2099  df-mo 2564  df-eu 2594  df-clab 2739  df-cleq 2752  df-clel 2835  df-nfc 2909  df-ne 2956  df-ral 3077  df-rex 3087  df-reu 3366  df-rab 3413  df-v 3452  df-sbc 3739  df-csb 3848  df-ss 3897  df-dif 4046  df-in 4090  df-un 4150  df-nul 4278  df-if 4482  df-pw 4558  df-sn 4585  df-pr 4587  df-op 4835  df-uni 4867  df-iun 4952  df-br 5103  df-opab 5167  df-mpt 5186  df-id 5546  df-xp 5657  df-rel 5658  df-cnv 5659  df-co 5660  df-dm 5661  df-rn 5662  df-res 5663  df-ima 5664  df-iota 6497  df-fun 6545  df-fn 6546  df-f 6547  df-f1 6548  df-fo 6549  df-f1o 6550  df-fv 6551  df-ov 7427  df-oprab 7428  df-mpo 7429  df-1st 8005  df-2nd 8006  df-map 8856  df-ixp 8933  df-func 18042
This theorem is used by:  funcoppc  18059  funcres  18080  catcisolem  18294  funcestrcsetc  18332  funcsetcestrc  18347  1stfcl  18380  2ndfcl  18381  prfcl  18386  evlfcl  18405  curf1cl  18411  curfcl  18415  hofcl  18442  funcringcsetcALTV2  49504  funcringcsetcALTV  49527  swapffunc  50512  fucofunc  50589  fucoppc  50653  parmapfunc2  50882  parmapfunc  50883
  Copyright terms: Public domain W3C validator