Step |
Hyp |
Ref |
Expression |
1 |
|
brrestrict.1 |
⊢ 𝐴 ∈ V |
2 |
|
brrestrict.2 |
⊢ 𝐵 ∈ V |
3 |
|
brrestrict.3 |
⊢ 𝐶 ∈ V |
4 |
|
opex |
⊢ 〈 𝐴 , 𝐵 〉 ∈ V |
5 |
4 3
|
brco |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Cap ∘ ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) ) 𝐶 ↔ ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) 𝑥 ∧ 𝑥 Cap 𝐶 ) ) |
6 |
4
|
brtxp2 |
⊢ ( 〈 𝐴 , 𝐵 〉 ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) 𝑥 ↔ ∃ 𝑎 ∃ 𝑏 ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 1st 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ) ) |
7 |
|
3anrot |
⊢ ( ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 1st 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ) ↔ ( 〈 𝐴 , 𝐵 〉 1st 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
8 |
1 2
|
br1steq |
⊢ ( 〈 𝐴 , 𝐵 〉 1st 𝑎 ↔ 𝑎 = 𝐴 ) |
9 |
|
vex |
⊢ 𝑏 ∈ V |
10 |
4 9
|
brco |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ↔ ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 ( 2nd ⊗ ( Range ∘ 1st ) ) 𝑥 ∧ 𝑥 Cart 𝑏 ) ) |
11 |
4
|
brtxp2 |
⊢ ( 〈 𝐴 , 𝐵 〉 ( 2nd ⊗ ( Range ∘ 1st ) ) 𝑥 ↔ ∃ 𝑎 ∃ 𝑏 ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 2nd 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ) ) |
12 |
|
3anrot |
⊢ ( ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 2nd 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ) ↔ ( 〈 𝐴 , 𝐵 〉 2nd 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
13 |
1 2
|
br2ndeq |
⊢ ( 〈 𝐴 , 𝐵 〉 2nd 𝑎 ↔ 𝑎 = 𝐵 ) |
14 |
4 9
|
brco |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ↔ ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 1st 𝑥 ∧ 𝑥 Range 𝑏 ) ) |
15 |
1 2
|
br1steq |
⊢ ( 〈 𝐴 , 𝐵 〉 1st 𝑥 ↔ 𝑥 = 𝐴 ) |
16 |
15
|
anbi1i |
⊢ ( ( 〈 𝐴 , 𝐵 〉 1st 𝑥 ∧ 𝑥 Range 𝑏 ) ↔ ( 𝑥 = 𝐴 ∧ 𝑥 Range 𝑏 ) ) |
17 |
16
|
exbii |
⊢ ( ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 1st 𝑥 ∧ 𝑥 Range 𝑏 ) ↔ ∃ 𝑥 ( 𝑥 = 𝐴 ∧ 𝑥 Range 𝑏 ) ) |
18 |
|
breq1 |
⊢ ( 𝑥 = 𝐴 → ( 𝑥 Range 𝑏 ↔ 𝐴 Range 𝑏 ) ) |
19 |
1 18
|
ceqsexv |
⊢ ( ∃ 𝑥 ( 𝑥 = 𝐴 ∧ 𝑥 Range 𝑏 ) ↔ 𝐴 Range 𝑏 ) |
20 |
17 19
|
bitri |
⊢ ( ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 1st 𝑥 ∧ 𝑥 Range 𝑏 ) ↔ 𝐴 Range 𝑏 ) |
21 |
1 9
|
brrange |
⊢ ( 𝐴 Range 𝑏 ↔ 𝑏 = ran 𝐴 ) |
22 |
14 20 21
|
3bitri |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ↔ 𝑏 = ran 𝐴 ) |
23 |
|
biid |
⊢ ( 𝑥 = 〈 𝑎 , 𝑏 〉 ↔ 𝑥 = 〈 𝑎 , 𝑏 〉 ) |
24 |
13 22 23
|
3anbi123i |
⊢ ( ( 〈 𝐴 , 𝐵 〉 2nd 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ↔ ( 𝑎 = 𝐵 ∧ 𝑏 = ran 𝐴 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
25 |
12 24
|
bitri |
⊢ ( ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 2nd 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ) ↔ ( 𝑎 = 𝐵 ∧ 𝑏 = ran 𝐴 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
26 |
25
|
2exbii |
⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 2nd 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Range ∘ 1st ) 𝑏 ) ↔ ∃ 𝑎 ∃ 𝑏 ( 𝑎 = 𝐵 ∧ 𝑏 = ran 𝐴 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
27 |
1
|
rnex |
⊢ ran 𝐴 ∈ V |
28 |
|
opeq1 |
⊢ ( 𝑎 = 𝐵 → 〈 𝑎 , 𝑏 〉 = 〈 𝐵 , 𝑏 〉 ) |
29 |
28
|
eqeq2d |
⊢ ( 𝑎 = 𝐵 → ( 𝑥 = 〈 𝑎 , 𝑏 〉 ↔ 𝑥 = 〈 𝐵 , 𝑏 〉 ) ) |
30 |
|
opeq2 |
⊢ ( 𝑏 = ran 𝐴 → 〈 𝐵 , 𝑏 〉 = 〈 𝐵 , ran 𝐴 〉 ) |
31 |
30
|
eqeq2d |
⊢ ( 𝑏 = ran 𝐴 → ( 𝑥 = 〈 𝐵 , 𝑏 〉 ↔ 𝑥 = 〈 𝐵 , ran 𝐴 〉 ) ) |
32 |
2 27 29 31
|
ceqsex2v |
⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑎 = 𝐵 ∧ 𝑏 = ran 𝐴 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ↔ 𝑥 = 〈 𝐵 , ran 𝐴 〉 ) |
33 |
11 26 32
|
3bitri |
⊢ ( 〈 𝐴 , 𝐵 〉 ( 2nd ⊗ ( Range ∘ 1st ) ) 𝑥 ↔ 𝑥 = 〈 𝐵 , ran 𝐴 〉 ) |
34 |
33
|
anbi1i |
⊢ ( ( 〈 𝐴 , 𝐵 〉 ( 2nd ⊗ ( Range ∘ 1st ) ) 𝑥 ∧ 𝑥 Cart 𝑏 ) ↔ ( 𝑥 = 〈 𝐵 , ran 𝐴 〉 ∧ 𝑥 Cart 𝑏 ) ) |
35 |
34
|
exbii |
⊢ ( ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 ( 2nd ⊗ ( Range ∘ 1st ) ) 𝑥 ∧ 𝑥 Cart 𝑏 ) ↔ ∃ 𝑥 ( 𝑥 = 〈 𝐵 , ran 𝐴 〉 ∧ 𝑥 Cart 𝑏 ) ) |
36 |
|
opex |
⊢ 〈 𝐵 , ran 𝐴 〉 ∈ V |
37 |
|
breq1 |
⊢ ( 𝑥 = 〈 𝐵 , ran 𝐴 〉 → ( 𝑥 Cart 𝑏 ↔ 〈 𝐵 , ran 𝐴 〉 Cart 𝑏 ) ) |
38 |
36 37
|
ceqsexv |
⊢ ( ∃ 𝑥 ( 𝑥 = 〈 𝐵 , ran 𝐴 〉 ∧ 𝑥 Cart 𝑏 ) ↔ 〈 𝐵 , ran 𝐴 〉 Cart 𝑏 ) |
39 |
35 38
|
bitri |
⊢ ( ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 ( 2nd ⊗ ( Range ∘ 1st ) ) 𝑥 ∧ 𝑥 Cart 𝑏 ) ↔ 〈 𝐵 , ran 𝐴 〉 Cart 𝑏 ) |
40 |
2 27 9
|
brcart |
⊢ ( 〈 𝐵 , ran 𝐴 〉 Cart 𝑏 ↔ 𝑏 = ( 𝐵 × ran 𝐴 ) ) |
41 |
10 39 40
|
3bitri |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ↔ 𝑏 = ( 𝐵 × ran 𝐴 ) ) |
42 |
8 41 23
|
3anbi123i |
⊢ ( ( 〈 𝐴 , 𝐵 〉 1st 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ↔ ( 𝑎 = 𝐴 ∧ 𝑏 = ( 𝐵 × ran 𝐴 ) ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
43 |
7 42
|
bitri |
⊢ ( ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 1st 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ) ↔ ( 𝑎 = 𝐴 ∧ 𝑏 = ( 𝐵 × ran 𝐴 ) ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
44 |
43
|
2exbii |
⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑥 = 〈 𝑎 , 𝑏 〉 ∧ 〈 𝐴 , 𝐵 〉 1st 𝑎 ∧ 〈 𝐴 , 𝐵 〉 ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) 𝑏 ) ↔ ∃ 𝑎 ∃ 𝑏 ( 𝑎 = 𝐴 ∧ 𝑏 = ( 𝐵 × ran 𝐴 ) ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ) |
45 |
2 27
|
xpex |
⊢ ( 𝐵 × ran 𝐴 ) ∈ V |
46 |
|
opeq1 |
⊢ ( 𝑎 = 𝐴 → 〈 𝑎 , 𝑏 〉 = 〈 𝐴 , 𝑏 〉 ) |
47 |
46
|
eqeq2d |
⊢ ( 𝑎 = 𝐴 → ( 𝑥 = 〈 𝑎 , 𝑏 〉 ↔ 𝑥 = 〈 𝐴 , 𝑏 〉 ) ) |
48 |
|
opeq2 |
⊢ ( 𝑏 = ( 𝐵 × ran 𝐴 ) → 〈 𝐴 , 𝑏 〉 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ) |
49 |
48
|
eqeq2d |
⊢ ( 𝑏 = ( 𝐵 × ran 𝐴 ) → ( 𝑥 = 〈 𝐴 , 𝑏 〉 ↔ 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ) ) |
50 |
1 45 47 49
|
ceqsex2v |
⊢ ( ∃ 𝑎 ∃ 𝑏 ( 𝑎 = 𝐴 ∧ 𝑏 = ( 𝐵 × ran 𝐴 ) ∧ 𝑥 = 〈 𝑎 , 𝑏 〉 ) ↔ 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ) |
51 |
6 44 50
|
3bitri |
⊢ ( 〈 𝐴 , 𝐵 〉 ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) 𝑥 ↔ 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ) |
52 |
51
|
anbi1i |
⊢ ( ( 〈 𝐴 , 𝐵 〉 ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) 𝑥 ∧ 𝑥 Cap 𝐶 ) ↔ ( 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ∧ 𝑥 Cap 𝐶 ) ) |
53 |
52
|
exbii |
⊢ ( ∃ 𝑥 ( 〈 𝐴 , 𝐵 〉 ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) 𝑥 ∧ 𝑥 Cap 𝐶 ) ↔ ∃ 𝑥 ( 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ∧ 𝑥 Cap 𝐶 ) ) |
54 |
5 53
|
bitri |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Cap ∘ ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) ) 𝐶 ↔ ∃ 𝑥 ( 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ∧ 𝑥 Cap 𝐶 ) ) |
55 |
|
opex |
⊢ 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ∈ V |
56 |
|
breq1 |
⊢ ( 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 → ( 𝑥 Cap 𝐶 ↔ 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 Cap 𝐶 ) ) |
57 |
55 56
|
ceqsexv |
⊢ ( ∃ 𝑥 ( 𝑥 = 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 ∧ 𝑥 Cap 𝐶 ) ↔ 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 Cap 𝐶 ) |
58 |
1 45 3
|
brcap |
⊢ ( 〈 𝐴 , ( 𝐵 × ran 𝐴 ) 〉 Cap 𝐶 ↔ 𝐶 = ( 𝐴 ∩ ( 𝐵 × ran 𝐴 ) ) ) |
59 |
54 57 58
|
3bitri |
⊢ ( 〈 𝐴 , 𝐵 〉 ( Cap ∘ ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) ) 𝐶 ↔ 𝐶 = ( 𝐴 ∩ ( 𝐵 × ran 𝐴 ) ) ) |
60 |
|
df-restrict |
⊢ Restrict = ( Cap ∘ ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) ) |
61 |
60
|
breqi |
⊢ ( 〈 𝐴 , 𝐵 〉 Restrict 𝐶 ↔ 〈 𝐴 , 𝐵 〉 ( Cap ∘ ( 1st ⊗ ( Cart ∘ ( 2nd ⊗ ( Range ∘ 1st ) ) ) ) ) 𝐶 ) |
62 |
|
dfres3 |
⊢ ( 𝐴 ↾ 𝐵 ) = ( 𝐴 ∩ ( 𝐵 × ran 𝐴 ) ) |
63 |
62
|
eqeq2i |
⊢ ( 𝐶 = ( 𝐴 ↾ 𝐵 ) ↔ 𝐶 = ( 𝐴 ∩ ( 𝐵 × ran 𝐴 ) ) ) |
64 |
59 61 63
|
3bitr4i |
⊢ ( 〈 𝐴 , 𝐵 〉 Restrict 𝐶 ↔ 𝐶 = ( 𝐴 ↾ 𝐵 ) ) |