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

Theorem isfuncd 18090
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 6930 . . . . 5 𝐵 ∈ V
54, 4xpex 7799 . . . 4 (𝐵 × 𝐵) ∈ V
6 fnex 7254 . . . 4 ((𝐺 Fn (𝐵 × 𝐵) ∧ (𝐵 × 𝐵) ∈ V) → 𝐺 ∈ V)
72, 5, 6sylancl 598 . . 3 (𝜑 → 𝐺 ∈ V)
8 isfuncd.3 . . . . . 6 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵)) → (𝑥𝐺𝑦):(𝑥𝐻𝑦)⟶((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
9 ovex 7484 . . . . . . 7 ((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ∈ V
10 ovex 7484 . . . . . . 7 (𝑥𝐻𝑦) ∈ V
119, 10elmap 8937 . . . . . 6 ((𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)) ↔ (𝑥𝐺𝑦):(𝑥𝐻𝑦)⟶((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
128, 11sylibr 237 . . . . 5 ((𝜑 ∧ (𝑥 ∈ 𝐵 ∧ 𝑦 ∈ 𝐵)) → (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
1312ralrimivva 3209 . . . 4 (𝜑 → ∀𝑥 ∈ 𝐵 ∀𝑦 ∈ 𝐵 (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
14 fveq2 6916 . . . . . . 7 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐺‘𝑧) = (𝐺‘⟨𝑥, 𝑦⟩))
15 df-ov 7454 . . . . . . 7 (𝑥𝐺𝑦) = (𝐺‘⟨𝑥, 𝑦⟩)
1614, 15eqtr4di 2816 . . . . . 6 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐺‘𝑧) = (𝑥𝐺𝑦))
17 vex 3458 . . . . . . . . . 10 𝑥 ∈ V
18 vex 3458 . . . . . . . . . 10 𝑦 ∈ V
1917, 18op1std 8045 . . . . . . . . 9 (𝑧 = ⟨𝑥, 𝑦⟩ → (1st ‘𝑧) = 𝑥)
2019fveq2d 6920 . . . . . . . 8 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐹‘(1st ‘𝑧)) = (𝐹‘𝑥))
2117, 18op2ndd 8046 . . . . . . . . 9 (𝑧 = ⟨𝑥, 𝑦⟩ → (2nd ‘𝑧) = 𝑦)
2221fveq2d 6920 . . . . . . . 8 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐹‘(2nd ‘𝑧)) = (𝐹‘𝑦))
2320, 22oveq12d 7469 . . . . . . 7 (𝑧 = ⟨𝑥, 𝑦⟩ → ((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) = ((𝐹‘𝑥)𝐽(𝐹‘𝑦)))
24 fveq2 6916 . . . . . . . 8 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐻‘𝑧) = (𝐻‘⟨𝑥, 𝑦⟩))
25 df-ov 7454 . . . . . . . 8 (𝑥𝐻𝑦) = (𝐻‘⟨𝑥, 𝑦⟩)
2624, 25eqtr4di 2816 . . . . . . 7 (𝑧 = ⟨𝑥, 𝑦⟩ → (𝐻‘𝑧) = (𝑥𝐻𝑦))
2723, 26oveq12d 7469 . . . . . 6 (𝑧 = ⟨𝑥, 𝑦⟩ → (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) = (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
2816, 27eleq12d 2858 . . . . 5 (𝑧 = ⟨𝑥, 𝑦⟩ → ((𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) ↔ (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦))))
2928ralxp 5828 . . . 4 (∀𝑧 ∈ (𝐵 × 𝐵)(𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)) ↔ ∀𝑥 ∈ 𝐵 ∀𝑦 ∈ 𝐵 (𝑥𝐺𝑦) ∈ (((𝐹‘𝑥)𝐽(𝐹‘𝑦)) ↑m (𝑥𝐻𝑦)))
3013, 29sylibr 237 . . 3 (𝜑 → ∀𝑧 ∈ (𝐵 × 𝐵)(𝐺‘𝑧) ∈ (((𝐹‘(1st ‘𝑧))𝐽(𝐹‘(2nd ‘𝑧))) ↑m (𝐻‘𝑧)))
31 elixp2 8967 . . 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 3207 . . . . 5 (((𝜑 ∧ 𝑥 ∈ 𝐵) ∧ (𝑦 ∈ 𝐵 ∧ 𝑧 ∈ 𝐵)) → ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))
3938ralrimivva 3209 . . . 4 ((𝜑 ∧ 𝑥 ∈ 𝐵) → ∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚)))
4033, 39jca 521 . . 3 ((𝜑 ∧ 𝑥 ∈ 𝐵) → (((𝑥𝐺𝑥)‘( 1 ‘𝑥)) = (𝐼‘(𝐹‘𝑥)) ∧ ∀𝑦 ∈ 𝐵 ∀𝑧 ∈ 𝐵 ∀𝑚 ∈ (𝑥𝐻𝑦)∀𝑛 ∈ (𝑦𝐻𝑧)((𝑥𝐺𝑧)‘(𝑛(⟨𝑥, 𝑦⟩ · 𝑧)𝑚)) = (((𝑦𝐺𝑧)‘𝑛)(⟨(𝐹‘𝑥), (𝐹‘𝑦)⟩𝑂(𝐹‘𝑧))((𝑥𝐺𝑦)‘𝑚))))
4140ralrimiva 3158 . 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 18089 . 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 1570   ∈ wcel 2147  ∀wral 3080  Vcvv 3454  ⟨cop 4840   class class class wbr 5108   × cxp 5656   Fn wfn 6561  ⟶wf 6562  ‘cfv 6566  (class class class)co 7451  1st c1st 8033  2nd c2nd 8034   ↑m cmap 8885  Xcixp 8963  Basecbs 17431  Hom chom 17483  compcco 17484  Catccat 17888  Idccid 17889   Func cfunc 18079
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 1945  ax-6 2002  ax-7 2043  ax-8 2149  ax-9 2157  ax-10 2180  ax-11 2197  ax-12 2216  ax-ext 2735  ax-rep 5238  ax-sep 5255  ax-nul 5266  ax-pow 5334  ax-pr 5398  ax-un 7783
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 2102  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-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 4841  df-uni 4873  df-iun 4958  df-br 5109  df-opab 5174  df-mpt 5193  df-id 5553  df-xp 5664  df-rel 5665  df-cnv 5666  df-co 5667  df-dm 5668  df-rn 5669  df-res 5670  df-ima 5671  df-iota 6520  df-fun 6568  df-fn 6569  df-f 6570  df-f1 6571  df-fo 6572  df-f1o 6573  df-fv 6574  df-ov 7454  df-oprab 7455  df-mpo 7456  df-1st 8035  df-2nd 8036  df-map 8887  df-ixp 8964  df-func 18083
This theorem is used by:  funcoppc  18100  funcres  18121  catcisolem  18335  funcestrcsetc  18373  funcsetcestrc  18388  1stfcl  18421  2ndfcl  18422  prfcl  18427  evlfcl  18446  curf1cl  18452  curfcl  18456  hofcl  18483  funcringcsetcALTV2  49669  funcringcsetcALTV  49692  swapffunc  50735  fucofunc  50812  fucoppc  50876  parmapfunc2  51105  parmapfunc  51106
  Copyright terms: Public domain W3C validator