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

Theorem uncfval 18189
Description: Value of the uncurry functor, which is the reverse of the curry functor, taking 𝐺:𝐶⟶(𝐷𝐸) to uncurryF (𝐺):𝐶 × 𝐷𝐸. (Contributed by Mario Carneiro, 13-Jan-2017.)
Hypotheses
Ref Expression
uncfval.g 𝐹 = (⟨“𝐶𝐷𝐸”⟩ uncurryF 𝐺)
uncfval.c (𝜑𝐷 ∈ Cat)
uncfval.d (𝜑𝐸 ∈ Cat)
uncfval.f (𝜑𝐺 ∈ (𝐶 Func (𝐷 FuncCat 𝐸)))
Assertion
Ref Expression
uncfval (𝜑𝐹 = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))

Proof of Theorem uncfval
Dummy variables 𝑓 𝑐 are mutually distinct and distinct from all other variables.
StepHypRef Expression
1 uncfval.g . 2 𝐹 = (⟨“𝐶𝐷𝐸”⟩ uncurryF 𝐺)
2 df-uncf 18170 . . . 4 uncurryF = (𝑐 ∈ V, 𝑓 ∈ V ↦ (((𝑐‘1) evalF (𝑐‘2)) ∘func ((𝑓func ((𝑐‘0) 1stF (𝑐‘1))) ⟨,⟩F ((𝑐‘0) 2ndF (𝑐‘1)))))
32a1i 11 . . 3 (𝜑 → uncurryF = (𝑐 ∈ V, 𝑓 ∈ V ↦ (((𝑐‘1) evalF (𝑐‘2)) ∘func ((𝑓func ((𝑐‘0) 1stF (𝑐‘1))) ⟨,⟩F ((𝑐‘0) 2ndF (𝑐‘1))))))
4 simprl 768 . . . . . . 7 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → 𝑐 = ⟨“𝐶𝐷𝐸”⟩)
54fveq1d 6883 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘1) = (⟨“𝐶𝐷𝐸”⟩‘1))
6 uncfval.c . . . . . . . 8 (𝜑𝐷 ∈ Cat)
7 s3fv1 14840 . . . . . . . 8 (𝐷 ∈ Cat → (⟨“𝐶𝐷𝐸”⟩‘1) = 𝐷)
86, 7syl 17 . . . . . . 7 (𝜑 → (⟨“𝐶𝐷𝐸”⟩‘1) = 𝐷)
98adantr 480 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (⟨“𝐶𝐷𝐸”⟩‘1) = 𝐷)
105, 9eqtrd 2764 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘1) = 𝐷)
114fveq1d 6883 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘2) = (⟨“𝐶𝐷𝐸”⟩‘2))
12 uncfval.d . . . . . . . 8 (𝜑𝐸 ∈ Cat)
13 s3fv2 14841 . . . . . . . 8 (𝐸 ∈ Cat → (⟨“𝐶𝐷𝐸”⟩‘2) = 𝐸)
1412, 13syl 17 . . . . . . 7 (𝜑 → (⟨“𝐶𝐷𝐸”⟩‘2) = 𝐸)
1514adantr 480 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (⟨“𝐶𝐷𝐸”⟩‘2) = 𝐸)
1611, 15eqtrd 2764 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘2) = 𝐸)
1710, 16oveq12d 7419 . . . 4 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑐‘1) evalF (𝑐‘2)) = (𝐷 evalF 𝐸))
18 simprr 770 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → 𝑓 = 𝐺)
194fveq1d 6883 . . . . . . . 8 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘0) = (⟨“𝐶𝐷𝐸”⟩‘0))
20 uncfval.f . . . . . . . . . . . 12 (𝜑𝐺 ∈ (𝐶 Func (𝐷 FuncCat 𝐸)))
21 funcrcl 17812 . . . . . . . . . . . 12 (𝐺 ∈ (𝐶 Func (𝐷 FuncCat 𝐸)) → (𝐶 ∈ Cat ∧ (𝐷 FuncCat 𝐸) ∈ Cat))
2220, 21syl 17 . . . . . . . . . . 11 (𝜑 → (𝐶 ∈ Cat ∧ (𝐷 FuncCat 𝐸) ∈ Cat))
2322simpld 494 . . . . . . . . . 10 (𝜑𝐶 ∈ Cat)
24 s3fv0 14839 . . . . . . . . . 10 (𝐶 ∈ Cat → (⟨“𝐶𝐷𝐸”⟩‘0) = 𝐶)
2523, 24syl 17 . . . . . . . . 9 (𝜑 → (⟨“𝐶𝐷𝐸”⟩‘0) = 𝐶)
2625adantr 480 . . . . . . . 8 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (⟨“𝐶𝐷𝐸”⟩‘0) = 𝐶)
2719, 26eqtrd 2764 . . . . . . 7 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘0) = 𝐶)
2827, 10oveq12d 7419 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑐‘0) 1stF (𝑐‘1)) = (𝐶 1stF 𝐷))
2918, 28oveq12d 7419 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑓func ((𝑐‘0) 1stF (𝑐‘1))) = (𝐺func (𝐶 1stF 𝐷)))
3027, 10oveq12d 7419 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑐‘0) 2ndF (𝑐‘1)) = (𝐶 2ndF 𝐷))
3129, 30oveq12d 7419 . . . 4 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑓func ((𝑐‘0) 1stF (𝑐‘1))) ⟨,⟩F ((𝑐‘0) 2ndF (𝑐‘1))) = ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷)))
3217, 31oveq12d 7419 . . 3 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (((𝑐‘1) evalF (𝑐‘2)) ∘func ((𝑓func ((𝑐‘0) 1stF (𝑐‘1))) ⟨,⟩F ((𝑐‘0) 2ndF (𝑐‘1)))) = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))
33 s3cli 14829 . . . 4 ⟨“𝐶𝐷𝐸”⟩ ∈ Word V
34 elex 3485 . . . 4 (⟨“𝐶𝐷𝐸”⟩ ∈ Word V → ⟨“𝐶𝐷𝐸”⟩ ∈ V)
3533, 34mp1i 13 . . 3 (𝜑 → ⟨“𝐶𝐷𝐸”⟩ ∈ V)
3620elexd 3487 . . 3 (𝜑𝐺 ∈ V)
37 ovexd 7436 . . 3 (𝜑 → ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))) ∈ V)
383, 32, 35, 36, 37ovmpod 7552 . 2 (𝜑 → (⟨“𝐶𝐷𝐸”⟩ uncurryF 𝐺) = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))
391, 38eqtrid 2776 1 (𝜑𝐹 = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 395   = wceq 1533  wcel 2098  Vcvv 3466  cfv 6533  (class class class)co 7401  cmpo 7403  0cc0 11106  1c1 11107  2c2 12264  Word cword 14461  ⟨“cs3 14790  Catccat 17607   Func cfunc 17803  func ccofu 17805   FuncCat cfuc 17895   1stF c1stf 18123   2ndF c2ndf 18124   ⟨,⟩F cprf 18125   evalF cevlf 18164   uncurryF cuncf 18166
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1789  ax-4 1803  ax-5 1905  ax-6 1963  ax-7 2003  ax-8 2100  ax-9 2108  ax-10 2129  ax-11 2146  ax-12 2163  ax-ext 2695  ax-rep 5275  ax-sep 5289  ax-nul 5296  ax-pow 5353  ax-pr 5417  ax-un 7718  ax-cnex 11162  ax-resscn 11163  ax-1cn 11164  ax-icn 11165  ax-addcl 11166  ax-addrcl 11167  ax-mulcl 11168  ax-mulrcl 11169  ax-mulcom 11170  ax-addass 11171  ax-mulass 11172  ax-distr 11173  ax-i2m1 11174  ax-1ne0 11175  ax-1rid 11176  ax-rnegex 11177  ax-rrecex 11178  ax-cnre 11179  ax-pre-lttri 11180  ax-pre-lttrn 11181  ax-pre-ltadd 11182  ax-pre-mulgt0 11183
This theorem depends on definitions:  df-bi 206  df-an 396  df-or 845  df-3or 1085  df-3an 1086  df-tru 1536  df-fal 1546  df-ex 1774  df-nf 1778  df-sb 2060  df-mo 2526  df-eu 2555  df-clab 2702  df-cleq 2716  df-clel 2802  df-nfc 2877  df-ne 2933  df-nel 3039  df-ral 3054  df-rex 3063  df-reu 3369  df-rab 3425  df-v 3468  df-sbc 3770  df-csb 3886  df-dif 3943  df-un 3945  df-in 3947  df-ss 3957  df-pss 3959  df-nul 4315  df-if 4521  df-pw 4596  df-sn 4621  df-pr 4623  df-op 4627  df-uni 4900  df-int 4941  df-iun 4989  df-br 5139  df-opab 5201  df-mpt 5222  df-tr 5256  df-id 5564  df-eprel 5570  df-po 5578  df-so 5579  df-fr 5621  df-we 5623  df-xp 5672  df-rel 5673  df-cnv 5674  df-co 5675  df-dm 5676  df-rn 5677  df-res 5678  df-ima 5679  df-pred 6290  df-ord 6357  df-on 6358  df-lim 6359  df-suc 6360  df-iota 6485  df-fun 6535  df-fn 6536  df-f 6537  df-f1 6538  df-fo 6539  df-f1o 6540  df-fv 6541  df-riota 7357  df-ov 7404  df-oprab 7405  df-mpo 7406  df-om 7849  df-1st 7968  df-2nd 7969  df-frecs 8261  df-wrecs 8292  df-recs 8366  df-rdg 8405  df-1o 8461  df-er 8699  df-en 8936  df-dom 8937  df-sdom 8938  df-fin 8939  df-card 9930  df-pnf 11247  df-mnf 11248  df-xr 11249  df-ltxr 11250  df-le 11251  df-sub 11443  df-neg 11444  df-nn 12210  df-2 12272  df-n0 12470  df-z 12556  df-uz 12820  df-fz 13482  df-fzo 13625  df-hash 14288  df-word 14462  df-concat 14518  df-s1 14543  df-s2 14796  df-s3 14797  df-func 17807  df-uncf 18170
This theorem is referenced by:  uncfcl  18190  uncf1  18191  uncf2  18192
  Copyright terms: Public domain W3C validator