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

Theorem uncfval 17484
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 17465 . . . 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 769 . . . . . . 7 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → 𝑐 = ⟨“𝐶𝐷𝐸”⟩)
54fveq1d 6672 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘1) = (⟨“𝐶𝐷𝐸”⟩‘1))
6 uncfval.c . . . . . . . 8 (𝜑𝐷 ∈ Cat)
7 s3fv1 14254 . . . . . . . 8 (𝐷 ∈ Cat → (⟨“𝐶𝐷𝐸”⟩‘1) = 𝐷)
86, 7syl 17 . . . . . . 7 (𝜑 → (⟨“𝐶𝐷𝐸”⟩‘1) = 𝐷)
98adantr 483 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (⟨“𝐶𝐷𝐸”⟩‘1) = 𝐷)
105, 9eqtrd 2856 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘1) = 𝐷)
114fveq1d 6672 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘2) = (⟨“𝐶𝐷𝐸”⟩‘2))
12 uncfval.d . . . . . . . 8 (𝜑𝐸 ∈ Cat)
13 s3fv2 14255 . . . . . . . 8 (𝐸 ∈ Cat → (⟨“𝐶𝐷𝐸”⟩‘2) = 𝐸)
1412, 13syl 17 . . . . . . 7 (𝜑 → (⟨“𝐶𝐷𝐸”⟩‘2) = 𝐸)
1514adantr 483 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (⟨“𝐶𝐷𝐸”⟩‘2) = 𝐸)
1611, 15eqtrd 2856 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘2) = 𝐸)
1710, 16oveq12d 7174 . . . 4 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑐‘1) evalF (𝑐‘2)) = (𝐷 evalF 𝐸))
18 simprr 771 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → 𝑓 = 𝐺)
194fveq1d 6672 . . . . . . . 8 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘0) = (⟨“𝐶𝐷𝐸”⟩‘0))
20 uncfval.f . . . . . . . . . . . 12 (𝜑𝐺 ∈ (𝐶 Func (𝐷 FuncCat 𝐸)))
21 funcrcl 17133 . . . . . . . . . . . 12 (𝐺 ∈ (𝐶 Func (𝐷 FuncCat 𝐸)) → (𝐶 ∈ Cat ∧ (𝐷 FuncCat 𝐸) ∈ Cat))
2220, 21syl 17 . . . . . . . . . . 11 (𝜑 → (𝐶 ∈ Cat ∧ (𝐷 FuncCat 𝐸) ∈ Cat))
2322simpld 497 . . . . . . . . . 10 (𝜑𝐶 ∈ Cat)
24 s3fv0 14253 . . . . . . . . . 10 (𝐶 ∈ Cat → (⟨“𝐶𝐷𝐸”⟩‘0) = 𝐶)
2523, 24syl 17 . . . . . . . . 9 (𝜑 → (⟨“𝐶𝐷𝐸”⟩‘0) = 𝐶)
2625adantr 483 . . . . . . . 8 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (⟨“𝐶𝐷𝐸”⟩‘0) = 𝐶)
2719, 26eqtrd 2856 . . . . . . 7 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑐‘0) = 𝐶)
2827, 10oveq12d 7174 . . . . . 6 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑐‘0) 1stF (𝑐‘1)) = (𝐶 1stF 𝐷))
2918, 28oveq12d 7174 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (𝑓func ((𝑐‘0) 1stF (𝑐‘1))) = (𝐺func (𝐶 1stF 𝐷)))
3027, 10oveq12d 7174 . . . . 5 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑐‘0) 2ndF (𝑐‘1)) = (𝐶 2ndF 𝐷))
3129, 30oveq12d 7174 . . . 4 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → ((𝑓func ((𝑐‘0) 1stF (𝑐‘1))) ⟨,⟩F ((𝑐‘0) 2ndF (𝑐‘1))) = ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷)))
3217, 31oveq12d 7174 . . 3 ((𝜑 ∧ (𝑐 = ⟨“𝐶𝐷𝐸”⟩ ∧ 𝑓 = 𝐺)) → (((𝑐‘1) evalF (𝑐‘2)) ∘func ((𝑓func ((𝑐‘0) 1stF (𝑐‘1))) ⟨,⟩F ((𝑐‘0) 2ndF (𝑐‘1)))) = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))
33 s3cli 14243 . . . 4 ⟨“𝐶𝐷𝐸”⟩ ∈ Word V
34 elex 3512 . . . 4 (⟨“𝐶𝐷𝐸”⟩ ∈ Word V → ⟨“𝐶𝐷𝐸”⟩ ∈ V)
3533, 34mp1i 13 . . 3 (𝜑 → ⟨“𝐶𝐷𝐸”⟩ ∈ V)
3620elexd 3514 . . 3 (𝜑𝐺 ∈ V)
37 ovexd 7191 . . 3 (𝜑 → ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))) ∈ V)
383, 32, 35, 36, 37ovmpod 7302 . 2 (𝜑 → (⟨“𝐶𝐷𝐸”⟩ uncurryF 𝐺) = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))
391, 38syl5eq 2868 1 (𝜑𝐹 = ((𝐷 evalF 𝐸) ∘func ((𝐺func (𝐶 1stF 𝐷)) ⟨,⟩F (𝐶 2ndF 𝐷))))
Colors of variables: wff setvar class
Syntax hints:  wi 4  wa 398   = wceq 1537  wcel 2114  Vcvv 3494  cfv 6355  (class class class)co 7156  cmpo 7158  0cc0 10537  1c1 10538  2c2 11693  Word cword 13862  ⟨“cs3 14204  Catccat 16935   Func cfunc 17124  func ccofu 17126   FuncCat cfuc 17212   1stF c1stf 17419   2ndF c2ndf 17420   ⟨,⟩F cprf 17421   evalF cevlf 17459   uncurryF cuncf 17461
This theorem was proved from axioms:  ax-mp 5  ax-1 6  ax-2 7  ax-3 8  ax-gen 1796  ax-4 1810  ax-5 1911  ax-6 1970  ax-7 2015  ax-8 2116  ax-9 2124  ax-10 2145  ax-11 2161  ax-12 2177  ax-ext 2793  ax-rep 5190  ax-sep 5203  ax-nul 5210  ax-pow 5266  ax-pr 5330  ax-un 7461  ax-cnex 10593  ax-resscn 10594  ax-1cn 10595  ax-icn 10596  ax-addcl 10597  ax-addrcl 10598  ax-mulcl 10599  ax-mulrcl 10600  ax-mulcom 10601  ax-addass 10602  ax-mulass 10603  ax-distr 10604  ax-i2m1 10605  ax-1ne0 10606  ax-1rid 10607  ax-rnegex 10608  ax-rrecex 10609  ax-cnre 10610  ax-pre-lttri 10611  ax-pre-lttrn 10612  ax-pre-ltadd 10613  ax-pre-mulgt0 10614
This theorem depends on definitions:  df-bi 209  df-an 399  df-or 844  df-3or 1084  df-3an 1085  df-tru 1540  df-ex 1781  df-nf 1785  df-sb 2070  df-mo 2622  df-eu 2654  df-clab 2800  df-cleq 2814  df-clel 2893  df-nfc 2963  df-ne 3017  df-nel 3124  df-ral 3143  df-rex 3144  df-reu 3145  df-rab 3147  df-v 3496  df-sbc 3773  df-csb 3884  df-dif 3939  df-un 3941  df-in 3943  df-ss 3952  df-pss 3954  df-nul 4292  df-if 4468  df-pw 4541  df-sn 4568  df-pr 4570  df-tp 4572  df-op 4574  df-uni 4839  df-int 4877  df-iun 4921  df-br 5067  df-opab 5129  df-mpt 5147  df-tr 5173  df-id 5460  df-eprel 5465  df-po 5474  df-so 5475  df-fr 5514  df-we 5516  df-xp 5561  df-rel 5562  df-cnv 5563  df-co 5564  df-dm 5565  df-rn 5566  df-res 5567  df-ima 5568  df-pred 6148  df-ord 6194  df-on 6195  df-lim 6196  df-suc 6197  df-iota 6314  df-fun 6357  df-fn 6358  df-f 6359  df-f1 6360  df-fo 6361  df-f1o 6362  df-fv 6363  df-riota 7114  df-ov 7159  df-oprab 7160  df-mpo 7161  df-om 7581  df-1st 7689  df-2nd 7690  df-wrecs 7947  df-recs 8008  df-rdg 8046  df-1o 8102  df-oadd 8106  df-er 8289  df-en 8510  df-dom 8511  df-sdom 8512  df-fin 8513  df-card 9368  df-pnf 10677  df-mnf 10678  df-xr 10679  df-ltxr 10680  df-le 10681  df-sub 10872  df-neg 10873  df-nn 11639  df-2 11701  df-n0 11899  df-z 11983  df-uz 12245  df-fz 12894  df-fzo 13035  df-hash 13692  df-word 13863  df-concat 13923  df-s1 13950  df-s2 14210  df-s3 14211  df-func 17128  df-uncf 17465
This theorem is referenced by:  uncfcl  17485  uncf1  17486  uncf2  17487
  Copyright terms: Public domain W3C validator