HomeHome Metamath Proof Explorer < Previous   Next >
Related theorems
Unicode version

Theorem curry1 5075
Description: Composition with `'(2nd |` ({C} X. _V)) turns any binary operation F with a constant first operand into a function G of the second operand only. This transformation is called "currying."
Hypothesis
Ref Expression
curry1.1 |- G = (F o. `'(2nd |` ({C} X. _V)))
Assertion
Ref Expression
curry1 |- ((F Fn (A X. B) /\ C e. A) -> G = {<.x, y>. | (x e. B /\ y = (CFx))})
Distinct variable groups:   x,y,A   x,B,y   x,C,y   x,F,y

Proof of Theorem curry1
StepHypRef Expression
1 2ndconst 5071 . . . . . . . . . 10 |- (C e. A -> (2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V)
21adantr 425 . . . . . . . . 9 |- ((C e. A /\ z e. B) -> (2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V)
3 snidg 3067 . . . . . . . . . . . 12 |- (C e. A -> C e. {C})
4 visset 2295 . . . . . . . . . . . 12 |- z e. _V
53, 4jctir 317 . . . . . . . . . . 11 |- (C e. A -> (C e. {C} /\ z e. _V))
64opelxp 4036 . . . . . . . . . . 11 |- (<.C, z>. e. ({C} X. _V) <-> (C e. {C} /\ z e. _V))
75, 6sylibr 217 . . . . . . . . . 10 |- (C e. A -> <.C, z>. e. ({C} X. _V))
87adantr 425 . . . . . . . . 9 |- ((C e. A /\ z e. B) -> <.C, z>. e. ({C} X. _V))
92, 8jca 310 . . . . . . . 8 |- ((C e. A /\ z e. B) -> ((2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V /\ <.C, z>. e. ({C} X. _V)))
10 fvres 4691 . . . . . . . . . . 11 |- (<.C, z>. e. ({C} X. _V) -> ((2nd |` ({C} X. _V))` <.C, z>.) = (2nd`
<.C, z>.))
117, 10syl 12 . . . . . . . . . 10 |- (C e. A -> ((2nd |` ({C} X. _V))` <.C, z>.) = (2nd`
<.C, z>.))
12 op2ndg 5029 . . . . . . . . . . 11 |- ((C e. A /\ z e. _V) -> (2nd` <.C, z>.) = z)
134, 12mpan2 760 . . . . . . . . . 10 |- (C e. A -> (2nd` <.C, z>.) = z)
1411, 13eqtrd 1925 . . . . . . . . 9 |- (C e. A -> ((2nd |` ({C} X. _V))` <.C, z>.) = z)
1514adantr 425 . . . . . . . 8 |- ((C e. A /\ z e. B) -> ((2nd |` ({C} X. _V))` <.C, z>.) = z)
16 f1ocnvfv 4856 . . . . . . . 8 |- (((2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V /\ <.C, z>. e. ({C} X. _V)) -> (((2nd |` ({C} X. _V))` <.C, z>.) = z -> (`'(2nd |` ({C} X. _V))` z) = <.C, z>.))
179, 15, 16sylc 83 . . . . . . 7 |- ((C e. A /\ z e. B) -> (`'(2nd |` ({C} X. _V))` z) = <.C, z>.)
1817fveq2d 4685 . . . . . 6 |- ((C e. A /\ z e. B) -> (F` (`'(2nd |` ({C} X. _V))` z)) = (F` <.C, z>.))
1918adantll 428 . . . . 5 |- (((F Fn (A X. B) /\ C e. A) /\ z e. B) -> (F` (`'(2nd |` ({C} X. _V))` z)) = (F` <.C, z>.))
20 df-opr 4886 . . . . 5 |- (CFz) = (F` <.C, z>.)
2119, 20syl6eqr 1946 . . . 4 |- (((F Fn (A X. B) /\ C e. A) /\ z e. B) -> (F` (`'(2nd |` ({C} X. _V))` z)) = (CFz))
22 fvco2 4737 . . . . . . . 8 |- ((Fun F /\ `'(2nd |` ({C} X. _V)) Fn _V /\ z e. _V) -> ((F o. `'(2nd |` ({C} X. _V)))` z) = (F` (`'(2nd |` ({C} X. _V))` z)))
234, 22mp3an3 1180 . . . . . . 7 |- ((Fun F /\ `'(2nd |` ({C} X. _V)) Fn _V) -> ((F o. `'(2nd |` ({C} X. _V)))` z) = (F` (`'(2nd |` ({C} X. _V))` z)))
24 fnfun 4510 . . . . . . 7 |- (F Fn (A X. B) -> Fun F)
25 dff1o4 4644 . . . . . . . . 9 |- ((2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V <-> ((2nd |` ({C} X. _V)) Fn ({C} X. _V) /\ `'(2nd |` ({C} X. _V)) Fn _V))
261, 25sylib 215 . . . . . . . 8 |- (C e. A -> ((2nd |` ({C} X. _V)) Fn ({C} X. _V) /\ `'(2nd |` ({C} X. _V)) Fn _V))
2726simprd 352 . . . . . . 7 |- (C e. A -> `'(2nd |` ({C} X. _V)) Fn _V)
2823, 24, 27syl2an 503 . . . . . 6 |- ((F Fn (A X. B) /\ C e. A) -> ((F o. `'(2nd |` ({C} X. _V)))` z) = (F` (`'(2nd |` ({C} X. _V))` z)))
2928adantr 425 . . . . 5 |- (((F Fn (A X. B) /\ C e. A) /\ z e. B) -> ((F o. `'(2nd |` ({C} X. _V)))` z) = (F` (`'(2nd |` ({C} X. _V))` z)))
30 curry1.1 . . . . . 6 |- G = (F o. `'(2nd |` ({C} X. _V)))
3130fveq1i 4682 . . . . 5 |- (G` z) = ((F o. `'(2nd |` ({C} X. _V)))` z)
3229, 31syl5eq 1940 . . . 4 |- (((F Fn (A X. B) /\ C e. A) /\ z e. B) -> (G` z) = (F` (`'(2nd |` ({C} X. _V))` z)))
33 opreq2 4890 . . . . . 6 |- (x = z -> (CFx) = (CFz))
34 eqid 1884 . . . . . 6 |- {<.x, y>. | (x e. B /\ y = (CFx))} = {<.x, y>. | (x e. B /\ y = (CFx))}
35 oprex 4907 . . . . . 6 |- (CFz) e. _V
3633, 34, 35fvopab4 4743 . . . . 5 |- (z e. B -> ({<.x, y>. | (x e. B /\ y = (CFx))}` z) = (CFz))
3736adantl 424 . . . 4 |- (((F Fn (A X. B) /\ C e. A) /\ z e. B) -> ({<.x, y>. | (x e. B /\ y = (CFx))}` z) = (CFz))
3821, 32, 373eqtr4d 1937 . . 3 |- (((F Fn (A X. B) /\ C e. A) /\ z e. B) -> (G` z) = ({<.x, y>. | (x e. B /\ y = (CFx))}` z))
3938r19.21aiva 2176 . 2 |- ((F Fn (A X. B) /\ C e. A) -> A.z e. B (G` z) = ({<.x, y>. | (x e. B /\ y = (CFx))}` z))
40 eqfnfv2 4767 . . 3 |- ((G Fn B /\ {<.x, y>. | (x e. B /\ y = (CFx))} Fn B) -> (G = {<.x, y>. | (x e. B /\ y = (CFx))} <-> A.z e. B (G` z) = ({<.x, y>. | (x e. B /\ y = (CFx))}` z)))
4130fneq1i 4507 . . . . 5 |- (G Fn B <-> (F o. `'(2nd |` ({C} X. _V))) Fn B)
42 df-fn 4009 . . . . 5 |- ((F o. `'(2nd |` ({C} X. _V))) Fn B <-> (Fun (F o. `'(2nd |` ({C} X. _V))) /\ dom ( F o. `'(2nd |` ({C} X. _V))) = B))
4341, 42bitri 190 . . . 4 |- (G Fn B <-> (Fun (F o. `'(2nd |` ({C} X. _V))) /\ dom ( F o. `'(2nd |` ({C} X. _V))) = B))
44 funco 4457 . . . . 5 |- ((Fun F /\ Fun `'(2nd |` ({C} X. _V))) -> Fun (F o. `'(2nd |` ({C} X. _V))))
45 dff1o3 4641 . . . . . . 7 |- ((2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V <-> ((2nd |` ({C} X. _V)):({C} X. _V)-onto->_V /\ Fun `'(2nd |` ({C} X. _V))))
4645simprbi 353 . . . . . 6 |- ((2nd |` ({C} X. _V)):({C} X. _V)-1-1-onto->_V -> Fun `'(2nd |` ({C} X. _V)))
471, 46syl 12 . . . . 5 |- (C e. A -> Fun `'(2nd |` ({C} X. _V)))
4844, 24, 47syl2an 503 . . . 4 |- ((F Fn (A X. B) /\ C e. A) -> Fun (F o. `'(2nd |` ({C} X. _V))))
49 fndm 4512 . . . . . . . 8 |- (F Fn (A X. B) -> dom F = (A X. B))
5049adantr 425 . . . . . . 7 |- ((F Fn (A X. B) /\ C e. A) -> dom F = (A X. B))
5150imaeq2d 4264 . . . . . 6 |- ((F Fn (A X. B) /\ C e. A) -> (`'`'(2nd |` ({C} X. _V))"dom F) = (`'`'(2nd |` ({C} X. _V))"(A X. B)))
52 snssi 3129 . . . . . . . . . . . . . 14 |- (C e. A -> {C} C_ A)
53 df-ss 2605 . . . . . . . . . . . . . 14 |- ({C} C_ A <-> ({C} i^i A) = {C})
5452, 53sylib 215 . . . . . . . . . . . . 13 |- (C e. A -> ({C} i^i A) = {C})
55 xpeq1 4016 . . . . . . . . . . . . 13 |- (({C} i^i A) = {C} -> (({C} i^i A) X. B) = ({C} X. B))
5654, 55syl 12 . . . . . . . . . . . 12 |- (C e. A -> (({C} i^i A) X. B) = ({C} X. B))
57 inxp 4109 . . . . . . . . . . . . 13 |- (({C} X. _V) i^i (A X. B)) = (({C} i^i A) X. (_V i^i B))
58 incom 2787 . . . . . . . . . . . . . . 15 |- (_V i^i B) = (B i^i _V)
59 inv1 2898 . . . . . . . . . . . . . . 15 |- (B i^i _V) = B
6058, 59eqtri 1908 . . . . . . . . . . . . . 14 |- (_V i^i B) = B
6160xpeq2i 4022 . . . . . . . . . . . . 13 |- (({C} i^i A) X. (_V i^i B)) = (({C} i^i A) X. B)
6257, 61eqtri 1908 . . . . . . . . . . . 12 |- (({C} X. _V) i^i (A X. B)) = (({C} i^i A) X. B)
6356, 62syl5eq 1940 . . . . . . . . . . 11 |- (C e. A -> (({C} X. _V) i^i (A X. B)) = ({C} X. B))
64 reseq2 4219 . . . . . . . . . . 11 |- ((({C} X. _V) i^i (A X. B)) = ({C} X. B) -> (2nd |` (({C} X. _V) i^i (A X. B))) = (2nd |` ({C} X. B)))
6563, 64syl 12 . . . . . . . . . 10 |- (C e. A -> (2nd |` (({C} X. _V) i^i (A X. B))) = (2nd |` ({C} X. B)))
6665rneqd 4188 . . . . . . . . 9 |- (C e. A -> ran (2nd |` (({C} X. _V) i^i (A X. B))) = ran (2nd |` ({C} X. B)))
67 2ndconst 5071 . . . . . . . . . . 11 |- (C e. A -> (2nd |` ({C} X. B)):({C} X. B)-1-1-onto->B)
68 f1ofo 4643 . . . . . . . . . . 11 |- ((2nd |` ({C} X. B)):({C} X. B)-1-1-onto->B -> (2nd |` ({C} X. B)):({C} X. B)-onto->B)
6967, 68syl 12 . . . . . . . . . 10 |- (C e. A -> (2nd |` ({C} X. B)):({C} X. B)-onto->B)
70 forn 4620 . . . . . . . . . 10 |- ((2nd |` ({C} X. B)):({C} X. B)-onto->B -> ran (2nd |` ({C} X. B)) = B)
7169, 70syl 12 . . . . . . . . 9 |- (C e. A -> ran (2nd |` ({C} X. B)) = B)
7266, 71eqtrd 1925 . . . . . . . 8 |- (C e. A -> ran (2nd |` (({C} X. _V) i^i (A X. B))) = B)
73 imacnvcnv 4388 . . . . . . . . 9 |- (`'`'(2nd |` ({C} X. _V))"(A X. B)) = ((2nd |` ({C} X. _V))"(A X. B))
74 df-ima 4007 . . . . . . . . 9 |- ((2nd |` ({C} X. _V))"(A X. B)) = ran ((2nd |` ({C} X. _V)) |` (A X. B))
75 resres 4228 . . . . . . . . . 10 |- ((2nd |` ({C} X. _V)) |` (A X. B)) = (2nd |` (({C} X. _V) i^i (A X. B)))
7675rneqi 4187 . . . . . . . . 9 |- ran ((2nd |` ({C} X. _V)) |` (A X. B)) = ran (2nd |` (({C} X. _V) i^i (A X. B)))
7773, 74, 763eqtri 1912 . . . . . . . 8 |- (`'`'(2nd |` ({C} X. _V))"(A X. B)) = ran (2nd |` (({C} X. _V) i^i (A X. B)))
7872, 77syl5eq 1940 . . . . . . 7 |- (C e. A -> (`'`'(2nd |` ({C} X. _V))"(A X. B)) = B)
7978adantl 424 . . . . . 6 |- ((F Fn (A X. B) /\ C e. A) -> (`'`'(2nd |` ({C} X. _V))"(A X. B)) = B)
8051, 79eqtrd 1925 . . . . 5 |- ((F Fn (A X. B) /\ C e. A) -> (`'`'(2nd |` ({C} X. _V))"dom F) = B)
81 dmco 4406 . . . . 5 |- dom ( F o. `'(2nd |` ({C} X. _V))) = (`'`'(2nd |` ({C} X. _V))"dom F)
8280, 81syl5eq 1940 . . . 4 |- ((F Fn (A X. B) /\ C e. A) -> dom ( F o. `'(2nd |` ({C} X. _V))) = B)
8343, 48, 82sylanbrc 527 . . 3 |- ((F Fn (A X. B) /\ C e. A) -> G Fn B)
84 oprex 4907 . . . 4 |- (CFx) e. _V
8584, 34fnopab2 4549 . . 3 |- {<.x, y>. | (x e. B /\ y = (CFx))} Fn B
8640, 83, 85sylancl 525 . 2 |- ((F Fn (A X. B) /\ C e. A) -> (G = {<.x, y>. | (x e. B /\ y = (CFx))} <-> A.z e. B (G` z) = ({<.x, y>. | (x e. B /\ y = (CFx))}` z)))
8739, 86mpbird 213 1 |- ((F Fn (A X. B) /\ C e. A) -> G = {<.x, y>. | (x e. B /\ y = (CFx))})
Colors of variables: wff set class
Syntax hints:   -> wi 3   <-> wb 163   /\ wa 240   = wceq 1298   e. wcel 1300  A.wral 2105  _Vcvv 2292   i^i cin 2592   C_ wss 2593  {csn 3044  <.cop 3046  {copab 3395   X. cxp 3984  `'ccnv 3985  dom cdm 3986  ran crn 3987   |` cres 3988  "cima 3989   o. ccom 3990  Fun wfun 3992   Fn wfn 3993  -onto->wfo 3996  -1-1-onto->wf1o 3997  ` cfv 3998  (class class class)co 4884  2ndc2nd 5019
This theorem is referenced by:  curry1f 5076  curry1val 5077  valcurfn2 14553
This theorem was proved from axioms:  ax-1 4  ax-2 5  ax-3 6  ax-mp 7  ax-7 1304  ax-gen 1305  ax-8 1306  ax-9 1307  ax-10 1308  ax-11 1309  ax-12 1310  ax-13 1311  ax-14 1312  ax-17 1317  ax-4 1319  ax-5o 1321  ax-6o 1324  ax-9o 1481  ax-10o 1500  ax-16 1580  ax-11o 1588  ax-ext 1865  ax-sep 3438  ax-nul 3445  ax-pow 3481  ax-pr 3524  ax-un 3790
This theorem depends on definitions:  df-bi 164  df-or 241  df-an 242  df-3an 860  df-ex 1327  df-sb 1536  df-eu 1775  df-mo 1776  df-clab 1872  df-cleq 1877  df-clel 1880  df-ne 2019  df-ral 2109  df-rex 2110  df-v 2294  df-dif 2597  df-un 2600  df-in 2603  df-ss 2605  df-nul 2876  df-pw 3035  df-sn 3049  df-pr 3050  df-op 3053  df-uni 3178  df-br 3339  df-opab 3396  df-id 3586  df-xp 4000  df-rel 4001  df-cnv 4002  df-co 4003  df-dm 4004  df-rn 4005  df-res 4006  df-ima 4007  df-fun 4008  df-fn 4009  df-f 4010  df-f1 4011  df-fo 4012  df-f1o 4013  df-fv 4014  df-opr 4886  df-1st 5020  df-2nd 5021
Copyright terms: Public domain