| Step | Hyp | Ref | Expression | 
						
							| 1 |  | curry1.1 | ⊢ 𝐺  =  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) | 
						
							| 2 |  | fnfun | ⊢ ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  →  Fun  𝐹 ) | 
						
							| 3 |  | 2ndconst | ⊢ ( 𝐶  ∈  𝐴  →  ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V ) | 
						
							| 4 |  | dff1o3 | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V  ↔  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –onto→ V  ∧  Fun  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ) | 
						
							| 5 | 4 | simprbi | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V  →  Fun  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) | 
						
							| 6 | 3 5 | syl | ⊢ ( 𝐶  ∈  𝐴  →  Fun  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) | 
						
							| 7 |  | funco | ⊢ ( ( Fun  𝐹  ∧  Fun  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  →  Fun  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ) | 
						
							| 8 | 2 6 7 | syl2an | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  Fun  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ) | 
						
							| 9 |  | dmco | ⊢ dom  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  =  ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  dom  𝐹 ) | 
						
							| 10 |  | fndm | ⊢ ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  →  dom  𝐹  =  ( 𝐴  ×  𝐵 ) ) | 
						
							| 11 | 10 | adantr | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  dom  𝐹  =  ( 𝐴  ×  𝐵 ) ) | 
						
							| 12 | 11 | imaeq2d | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  dom  𝐹 )  =  ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 13 |  | imacnvcnv | ⊢ ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) )  =  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) ) | 
						
							| 14 |  | df-ima | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) )  =  ran  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  ↾  ( 𝐴  ×  𝐵 ) ) | 
						
							| 15 |  | resres | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  ↾  ( 𝐴  ×  𝐵 ) )  =  ( 2nd   ↾  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 16 | 15 | rneqi | ⊢ ran  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  ↾  ( 𝐴  ×  𝐵 ) )  =  ran  ( 2nd   ↾  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 17 | 13 14 16 | 3eqtri | ⊢ ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) )  =  ran  ( 2nd   ↾  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) ) ) | 
						
							| 18 |  | inxp | ⊢ ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) )  =  ( ( { 𝐶 }  ∩  𝐴 )  ×  ( V  ∩  𝐵 ) ) | 
						
							| 19 |  | incom | ⊢ ( V  ∩  𝐵 )  =  ( 𝐵  ∩  V ) | 
						
							| 20 |  | inv1 | ⊢ ( 𝐵  ∩  V )  =  𝐵 | 
						
							| 21 | 19 20 | eqtri | ⊢ ( V  ∩  𝐵 )  =  𝐵 | 
						
							| 22 | 21 | xpeq2i | ⊢ ( ( { 𝐶 }  ∩  𝐴 )  ×  ( V  ∩  𝐵 ) )  =  ( ( { 𝐶 }  ∩  𝐴 )  ×  𝐵 ) | 
						
							| 23 | 18 22 | eqtri | ⊢ ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) )  =  ( ( { 𝐶 }  ∩  𝐴 )  ×  𝐵 ) | 
						
							| 24 |  | snssi | ⊢ ( 𝐶  ∈  𝐴  →  { 𝐶 }  ⊆  𝐴 ) | 
						
							| 25 |  | dfss2 | ⊢ ( { 𝐶 }  ⊆  𝐴  ↔  ( { 𝐶 }  ∩  𝐴 )  =  { 𝐶 } ) | 
						
							| 26 | 24 25 | sylib | ⊢ ( 𝐶  ∈  𝐴  →  ( { 𝐶 }  ∩  𝐴 )  =  { 𝐶 } ) | 
						
							| 27 | 26 | xpeq1d | ⊢ ( 𝐶  ∈  𝐴  →  ( ( { 𝐶 }  ∩  𝐴 )  ×  𝐵 )  =  ( { 𝐶 }  ×  𝐵 ) ) | 
						
							| 28 | 23 27 | eqtrid | ⊢ ( 𝐶  ∈  𝐴  →  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) )  =  ( { 𝐶 }  ×  𝐵 ) ) | 
						
							| 29 | 28 | reseq2d | ⊢ ( 𝐶  ∈  𝐴  →  ( 2nd   ↾  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) ) )  =  ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) ) ) | 
						
							| 30 | 29 | rneqd | ⊢ ( 𝐶  ∈  𝐴  →  ran  ( 2nd   ↾  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) ) )  =  ran  ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) ) ) | 
						
							| 31 |  | 2ndconst | ⊢ ( 𝐶  ∈  𝐴  →  ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) ) : ( { 𝐶 }  ×  𝐵 ) –1-1-onto→ 𝐵 ) | 
						
							| 32 |  | f1ofo | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) ) : ( { 𝐶 }  ×  𝐵 ) –1-1-onto→ 𝐵  →  ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) ) : ( { 𝐶 }  ×  𝐵 ) –onto→ 𝐵 ) | 
						
							| 33 |  | forn | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) ) : ( { 𝐶 }  ×  𝐵 ) –onto→ 𝐵  →  ran  ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) )  =  𝐵 ) | 
						
							| 34 | 31 32 33 | 3syl | ⊢ ( 𝐶  ∈  𝐴  →  ran  ( 2nd   ↾  ( { 𝐶 }  ×  𝐵 ) )  =  𝐵 ) | 
						
							| 35 | 30 34 | eqtrd | ⊢ ( 𝐶  ∈  𝐴  →  ran  ( 2nd   ↾  ( ( { 𝐶 }  ×  V )  ∩  ( 𝐴  ×  𝐵 ) ) )  =  𝐵 ) | 
						
							| 36 | 17 35 | eqtrid | ⊢ ( 𝐶  ∈  𝐴  →  ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) )  =  𝐵 ) | 
						
							| 37 | 36 | adantl | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  ( 𝐴  ×  𝐵 ) )  =  𝐵 ) | 
						
							| 38 | 12 37 | eqtrd | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  ( ◡ ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  “  dom  𝐹 )  =  𝐵 ) | 
						
							| 39 | 9 38 | eqtrid | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  dom  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  =  𝐵 ) | 
						
							| 40 | 1 | fneq1i | ⊢ ( 𝐺  Fn  𝐵  ↔  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  Fn  𝐵 ) | 
						
							| 41 |  | df-fn | ⊢ ( ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  Fn  𝐵  ↔  ( Fun  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  ∧  dom  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  =  𝐵 ) ) | 
						
							| 42 | 40 41 | bitri | ⊢ ( 𝐺  Fn  𝐵  ↔  ( Fun  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  ∧  dom  ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) )  =  𝐵 ) ) | 
						
							| 43 | 8 39 42 | sylanbrc | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  𝐺  Fn  𝐵 ) | 
						
							| 44 |  | dffn5 | ⊢ ( 𝐺  Fn  𝐵  ↔  𝐺  =  ( 𝑥  ∈  𝐵  ↦  ( 𝐺 ‘ 𝑥 ) ) ) | 
						
							| 45 | 43 44 | sylib | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  𝐺  =  ( 𝑥  ∈  𝐵  ↦  ( 𝐺 ‘ 𝑥 ) ) ) | 
						
							| 46 | 1 | fveq1i | ⊢ ( 𝐺 ‘ 𝑥 )  =  ( ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ‘ 𝑥 ) | 
						
							| 47 |  | dff1o4 | ⊢ ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V  ↔  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  Fn  ( { 𝐶 }  ×  V )  ∧  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  Fn  V ) ) | 
						
							| 48 | 3 47 | sylib | ⊢ ( 𝐶  ∈  𝐴  →  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  Fn  ( { 𝐶 }  ×  V )  ∧  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  Fn  V ) ) | 
						
							| 49 |  | fvco2 | ⊢ ( ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  Fn  V  ∧  𝑥  ∈  V )  →  ( ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ‘ 𝑥 )  =  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) ) ) | 
						
							| 50 | 49 | elvd | ⊢ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) )  Fn  V  →  ( ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ‘ 𝑥 )  =  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) ) ) | 
						
							| 51 | 48 50 | simpl2im | ⊢ ( 𝐶  ∈  𝐴  →  ( ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ‘ 𝑥 )  =  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) ) ) | 
						
							| 52 | 51 | ad2antlr | ⊢ ( ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  ∧  𝑥  ∈  𝐵 )  →  ( ( 𝐹  ∘  ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ) ‘ 𝑥 )  =  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) ) ) | 
						
							| 53 | 46 52 | eqtrid | ⊢ ( ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  ∧  𝑥  ∈  𝐵 )  →  ( 𝐺 ‘ 𝑥 )  =  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) ) ) | 
						
							| 54 | 3 | adantr | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  𝐵 )  →  ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V ) | 
						
							| 55 |  | snidg | ⊢ ( 𝐶  ∈  𝐴  →  𝐶  ∈  { 𝐶 } ) | 
						
							| 56 |  | vex | ⊢ 𝑥  ∈  V | 
						
							| 57 |  | opelxp | ⊢ ( 〈 𝐶 ,  𝑥 〉  ∈  ( { 𝐶 }  ×  V )  ↔  ( 𝐶  ∈  { 𝐶 }  ∧  𝑥  ∈  V ) ) | 
						
							| 58 | 55 56 57 | sylanblrc | ⊢ ( 𝐶  ∈  𝐴  →  〈 𝐶 ,  𝑥 〉  ∈  ( { 𝐶 }  ×  V ) ) | 
						
							| 59 | 58 | adantr | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  𝐵 )  →  〈 𝐶 ,  𝑥 〉  ∈  ( { 𝐶 }  ×  V ) ) | 
						
							| 60 | 54 59 | jca | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  𝐵 )  →  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V  ∧  〈 𝐶 ,  𝑥 〉  ∈  ( { 𝐶 }  ×  V ) ) ) | 
						
							| 61 | 58 | fvresd | ⊢ ( 𝐶  ∈  𝐴  →  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 〈 𝐶 ,  𝑥 〉 )  =  ( 2nd  ‘ 〈 𝐶 ,  𝑥 〉 ) ) | 
						
							| 62 |  | op2ndg | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  V )  →  ( 2nd  ‘ 〈 𝐶 ,  𝑥 〉 )  =  𝑥 ) | 
						
							| 63 | 62 | elvd | ⊢ ( 𝐶  ∈  𝐴  →  ( 2nd  ‘ 〈 𝐶 ,  𝑥 〉 )  =  𝑥 ) | 
						
							| 64 | 61 63 | eqtrd | ⊢ ( 𝐶  ∈  𝐴  →  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 〈 𝐶 ,  𝑥 〉 )  =  𝑥 ) | 
						
							| 65 | 64 | adantr | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  𝐵 )  →  ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 〈 𝐶 ,  𝑥 〉 )  =  𝑥 ) | 
						
							| 66 |  | f1ocnvfv | ⊢ ( ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) : ( { 𝐶 }  ×  V ) –1-1-onto→ V  ∧  〈 𝐶 ,  𝑥 〉  ∈  ( { 𝐶 }  ×  V ) )  →  ( ( ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 〈 𝐶 ,  𝑥 〉 )  =  𝑥  →  ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 )  =  〈 𝐶 ,  𝑥 〉 ) ) | 
						
							| 67 | 60 65 66 | sylc | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  𝐵 )  →  ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 )  =  〈 𝐶 ,  𝑥 〉 ) | 
						
							| 68 | 67 | fveq2d | ⊢ ( ( 𝐶  ∈  𝐴  ∧  𝑥  ∈  𝐵 )  →  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) )  =  ( 𝐹 ‘ 〈 𝐶 ,  𝑥 〉 ) ) | 
						
							| 69 | 68 | adantll | ⊢ ( ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  ∧  𝑥  ∈  𝐵 )  →  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) )  =  ( 𝐹 ‘ 〈 𝐶 ,  𝑥 〉 ) ) | 
						
							| 70 |  | df-ov | ⊢ ( 𝐶 𝐹 𝑥 )  =  ( 𝐹 ‘ 〈 𝐶 ,  𝑥 〉 ) | 
						
							| 71 | 69 70 | eqtr4di | ⊢ ( ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  ∧  𝑥  ∈  𝐵 )  →  ( 𝐹 ‘ ( ◡ ( 2nd   ↾  ( { 𝐶 }  ×  V ) ) ‘ 𝑥 ) )  =  ( 𝐶 𝐹 𝑥 ) ) | 
						
							| 72 | 53 71 | eqtrd | ⊢ ( ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  ∧  𝑥  ∈  𝐵 )  →  ( 𝐺 ‘ 𝑥 )  =  ( 𝐶 𝐹 𝑥 ) ) | 
						
							| 73 | 72 | mpteq2dva | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  ( 𝑥  ∈  𝐵  ↦  ( 𝐺 ‘ 𝑥 ) )  =  ( 𝑥  ∈  𝐵  ↦  ( 𝐶 𝐹 𝑥 ) ) ) | 
						
							| 74 | 45 73 | eqtrd | ⊢ ( ( 𝐹  Fn  ( 𝐴  ×  𝐵 )  ∧  𝐶  ∈  𝐴 )  →  𝐺  =  ( 𝑥  ∈  𝐵  ↦  ( 𝐶 𝐹 𝑥 ) ) ) |