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

Definition df-curf 17458
 Description: Define the curry functor, which maps a functor 𝐹:𝐶 × 𝐷⟶𝐸 to curryF (𝐹):𝐶⟶(𝐷⟶𝐸). (Contributed by Mario Carneiro, 11-Jan-2017.)
Assertion
Ref Expression
df-curf curryF = (𝑒 ∈ V, 𝑓 ∈ V ↦ (1st𝑒) / 𝑐(2nd𝑒) / 𝑑⟨(𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩), (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))⟩)
Distinct variable group:   𝑐,𝑑,𝑓,𝑔,𝑥,𝑦,𝑒,𝑧

Detailed syntax breakdown of Definition df-curf
StepHypRef Expression
1 ccurf 17454 . 2 class curryF
2 ve . . 3 setvar 𝑒
3 vf . . 3 setvar 𝑓
4 cvv 3441 . . 3 class V
5 vc . . . 4 setvar 𝑐
62cv 1537 . . . . 5 class 𝑒
7 c1st 7671 . . . . 5 class 1st
86, 7cfv 6324 . . . 4 class (1st𝑒)
9 vd . . . . 5 setvar 𝑑
10 c2nd 7672 . . . . . 6 class 2nd
116, 10cfv 6324 . . . . 5 class (2nd𝑒)
12 vx . . . . . . 7 setvar 𝑥
135cv 1537 . . . . . . . 8 class 𝑐
14 cbs 16477 . . . . . . . 8 class Base
1513, 14cfv 6324 . . . . . . 7 class (Base‘𝑐)
16 vy . . . . . . . . 9 setvar 𝑦
179cv 1537 . . . . . . . . . 10 class 𝑑
1817, 14cfv 6324 . . . . . . . . 9 class (Base‘𝑑)
1912cv 1537 . . . . . . . . . 10 class 𝑥
2016cv 1537 . . . . . . . . . 10 class 𝑦
213cv 1537 . . . . . . . . . . 11 class 𝑓
2221, 7cfv 6324 . . . . . . . . . 10 class (1st𝑓)
2319, 20, 22co 7135 . . . . . . . . 9 class (𝑥(1st𝑓)𝑦)
2416, 18, 23cmpt 5110 . . . . . . . 8 class (𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦))
25 vz . . . . . . . . 9 setvar 𝑧
26 vg . . . . . . . . . 10 setvar 𝑔
2725cv 1537 . . . . . . . . . . 11 class 𝑧
28 chom 16570 . . . . . . . . . . . 12 class Hom
2917, 28cfv 6324 . . . . . . . . . . 11 class (Hom ‘𝑑)
3020, 27, 29co 7135 . . . . . . . . . 10 class (𝑦(Hom ‘𝑑)𝑧)
31 ccid 16930 . . . . . . . . . . . . 13 class Id
3213, 31cfv 6324 . . . . . . . . . . . 12 class (Id‘𝑐)
3319, 32cfv 6324 . . . . . . . . . . 11 class ((Id‘𝑐)‘𝑥)
3426cv 1537 . . . . . . . . . . 11 class 𝑔
3519, 20cop 4531 . . . . . . . . . . . 12 class 𝑥, 𝑦
3619, 27cop 4531 . . . . . . . . . . . 12 class 𝑥, 𝑧
3721, 10cfv 6324 . . . . . . . . . . . 12 class (2nd𝑓)
3835, 36, 37co 7135 . . . . . . . . . . 11 class (⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)
3933, 34, 38co 7135 . . . . . . . . . 10 class (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)
4026, 30, 39cmpt 5110 . . . . . . . . 9 class (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔))
4116, 25, 18, 18, 40cmpo 7137 . . . . . . . 8 class (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))
4224, 41cop 4531 . . . . . . 7 class ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩
4312, 15, 42cmpt 5110 . . . . . 6 class (𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩)
4413, 28cfv 6324 . . . . . . . . 9 class (Hom ‘𝑐)
4519, 20, 44co 7135 . . . . . . . 8 class (𝑥(Hom ‘𝑐)𝑦)
4617, 31cfv 6324 . . . . . . . . . . 11 class (Id‘𝑑)
4727, 46cfv 6324 . . . . . . . . . 10 class ((Id‘𝑑)‘𝑧)
4820, 27cop 4531 . . . . . . . . . . 11 class 𝑦, 𝑧
4936, 48, 37co 7135 . . . . . . . . . 10 class (⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)
5034, 47, 49co 7135 . . . . . . . . 9 class (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧))
5125, 18, 50cmpt 5110 . . . . . . . 8 class (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))
5226, 45, 51cmpt 5110 . . . . . . 7 class (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧))))
5312, 16, 15, 15, 52cmpo 7137 . . . . . 6 class (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))
5443, 53cop 4531 . . . . 5 class ⟨(𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩), (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))⟩
559, 11, 54csb 3828 . . . 4 class (2nd𝑒) / 𝑑⟨(𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩), (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))⟩
565, 8, 55csb 3828 . . 3 class (1st𝑒) / 𝑐(2nd𝑒) / 𝑑⟨(𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩), (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))⟩
572, 3, 4, 4, 56cmpo 7137 . 2 class (𝑒 ∈ V, 𝑓 ∈ V ↦ (1st𝑒) / 𝑐(2nd𝑒) / 𝑑⟨(𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩), (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))⟩)
581, 57wceq 1538 1 wff curryF = (𝑒 ∈ V, 𝑓 ∈ V ↦ (1st𝑒) / 𝑐(2nd𝑒) / 𝑑⟨(𝑥 ∈ (Base‘𝑐) ↦ ⟨(𝑦 ∈ (Base‘𝑑) ↦ (𝑥(1st𝑓)𝑦)), (𝑦 ∈ (Base‘𝑑), 𝑧 ∈ (Base‘𝑑) ↦ (𝑔 ∈ (𝑦(Hom ‘𝑑)𝑧) ↦ (((Id‘𝑐)‘𝑥)(⟨𝑥, 𝑦⟩(2nd𝑓)⟨𝑥, 𝑧⟩)𝑔)))⟩), (𝑥 ∈ (Base‘𝑐), 𝑦 ∈ (Base‘𝑐) ↦ (𝑔 ∈ (𝑥(Hom ‘𝑐)𝑦) ↦ (𝑧 ∈ (Base‘𝑑) ↦ (𝑔(⟨𝑥, 𝑧⟩(2nd𝑓)⟨𝑦, 𝑧⟩)((Id‘𝑑)‘𝑧)))))⟩)
 Colors of variables: wff setvar class This definition is referenced by:  curfval  17467
 Copyright terms: Public domain W3C validator