| Step | Hyp | Ref | Expression |
| 1 |
|
id |
_1 = a -> _1 = a |
| 2 |
1 |
eqeq1d |
_1 = a -> (_1 = x, y <-> a = x, y) |
| 3 |
2 |
exeqd |
_1 = a -> (E. y _1 = x, y <-> E. y a = x, y) |
| 4 |
3 |
exeqd |
_1 = a -> (E. x E. y _1 = x, y <-> E. x E. y a = x, y) |
| 5 |
|
id |
_1 = 0 -> _1 = 0 |
| 6 |
5 |
eqeq1d |
_1 = 0 -> (_1 = x, y <-> 0 = x, y) |
| 7 |
6 |
exeqd |
_1 = 0 -> (E. y _1 = x, y <-> E. y 0 = x, y) |
| 8 |
7 |
exeqd |
_1 = 0 -> (E. x E. y _1 = x, y <-> E. x E. y 0 = x, y) |
| 9 |
|
id |
_1 = a1 -> _1 = a1 |
| 10 |
9 |
eqeq1d |
_1 = a1 -> (_1 = x, y <-> a1 = x, y) |
| 11 |
10 |
exeqd |
_1 = a1 -> (E. y _1 = x, y <-> E. y a1 = x, y) |
| 12 |
11 |
exeqd |
_1 = a1 -> (E. x E. y _1 = x, y <-> E. x E. y a1 = x, y) |
| 13 |
|
id |
_1 = suc a1 -> _1 = suc a1 |
| 14 |
13 |
eqeq1d |
_1 = suc a1 -> (_1 = x, y <-> suc a1 = x, y) |
| 15 |
14 |
exeqd |
_1 = suc a1 -> (E. y _1 = x, y <-> E. y suc a1 = x, y) |
| 16 |
15 |
exeqd |
_1 = suc a1 -> (E. x E. y _1 = x, y <-> E. x E. y suc a1 = x, y) |
| 17 |
|
pr0 |
0, 0 = 0 |
| 18 |
|
preq |
x = 0 -> y = 0 -> x, y = 0, 0 |
| 19 |
18 |
imp |
x = 0 /\ y = 0 -> x, y = 0, 0 |
| 20 |
19 |
eqcomd |
x = 0 /\ y = 0 -> 0, 0 = x, y |
| 21 |
17, 20 |
syl5eqr |
x = 0 /\ y = 0 -> 0 = x, y |
| 22 |
21 |
iexde |
x = 0 -> E. y 0 = x, y |
| 23 |
22 |
iexie |
E. x E. y 0 = x, y |
| 24 |
|
anl |
m = x /\ n = y -> m = x |
| 25 |
|
anr |
m = x /\ n = y -> n = y |
| 26 |
24, 25 |
preqd |
m = x /\ n = y -> m, n = x, y |
| 27 |
26 |
eqeq2d |
m = x /\ n = y -> (suc a1 = m, n <-> suc a1 = x, y) |
| 28 |
27 |
cbvexd |
m = x -> (E. n suc a1 = m, n <-> E. y suc a1 = x, y) |
| 29 |
28 |
cbvex |
E. m E. n suc a1 = m, n <-> E. x E. y suc a1 = x, y |
| 30 |
|
an3l |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> a1 = x, y |
| 31 |
30 |
suceqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> suc a1 = suc (x, y) |
| 32 |
|
addS |
(x + y) * suc (x + y) // 2 + suc y = suc ((x + y) * suc (x + y) // 2 + y) |
| 33 |
32 |
conv pr |
(x + y) * suc (x + y) // 2 + suc y = suc (x, y) |
| 34 |
|
mulcan2 |
2 != 0 -> (2 * ((x + y) * suc (x + y) // 2 + suc y) = 2 * (suc y * suc (suc y) // 2) <-> (x + y) * suc (x + y) // 2 + suc y = suc y * suc (suc y) // 2) |
| 35 |
|
d2ne0 |
2 != 0 |
| 36 |
34, 35 |
ax_mp |
2 * ((x + y) * suc (x + y) // 2 + suc y) = 2 * (suc y * suc (suc y) // 2) <-> (x + y) * suc (x + y) // 2 + suc y = suc y * suc (suc y) // 2 |
| 37 |
|
muladd |
2 * ((x + y) * suc (x + y) // 2 + suc y) = 2 * ((x + y) * suc (x + y) // 2) + 2 * suc y |
| 38 |
|
eqtr |
2 * (suc y * suc (suc y) // 2) = suc y * suc (suc y) -> suc y * suc (suc y) = suc (suc y) * suc y -> 2 * (suc y * suc (suc y) // 2) = suc (suc y) * suc y |
| 39 |
|
muldiv3 |
2 || suc y * suc (suc y) -> 2 * (suc y * suc (suc y) // 2) = suc y * suc (suc y) |
| 40 |
|
prlem1 |
2 || suc y * suc (suc y) |
| 41 |
39, 40 |
ax_mp |
2 * (suc y * suc (suc y) // 2) = suc y * suc (suc y) |
| 42 |
38, 41 |
ax_mp |
suc y * suc (suc y) = suc (suc y) * suc y -> 2 * (suc y * suc (suc y) // 2) = suc (suc y) * suc y |
| 43 |
|
mulcom |
suc y * suc (suc y) = suc (suc y) * suc y |
| 44 |
42, 43 |
ax_mp |
2 * (suc y * suc (suc y) // 2) = suc (suc y) * suc y |
| 45 |
|
muldiv3 |
2 || (x + y) * suc (x + y) -> 2 * ((x + y) * suc (x + y) // 2) = (x + y) * suc (x + y) |
| 46 |
|
prlem1 |
2 || (x + y) * suc (x + y) |
| 47 |
45, 46 |
ax_mp |
2 * ((x + y) * suc (x + y) // 2) = (x + y) * suc (x + y) |
| 48 |
|
add01 |
0 + y = y |
| 49 |
|
anr |
a1 = x, y /\ x = 0 -> x = 0 |
| 50 |
49 |
anwll |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> x = 0 |
| 51 |
50 |
addeq1d |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> x + y = 0 + y |
| 52 |
48, 51 |
syl6eq |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> x + y = y |
| 53 |
52 |
suceqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> suc (x + y) = suc y |
| 54 |
52, 53 |
muleqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (x + y) * suc (x + y) = y * suc y |
| 55 |
47, 54 |
syl5eq |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> 2 * ((x + y) * suc (x + y) // 2) = y * suc y |
| 56 |
55 |
addeq1d |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> 2 * ((x + y) * suc (x + y) // 2) + 2 * suc y = y * suc y + 2 * suc y |
| 57 |
|
addmul |
(y + 2) * suc y = y * suc y + 2 * suc y |
| 58 |
|
muleq1 |
y + 2 = suc (suc y) -> (y + 2) * suc y = suc (suc y) * suc y |
| 59 |
|
eqtr |
y + 2 = suc (y + 1) -> suc (y + 1) = suc (suc y) -> y + 2 = suc (suc y) |
| 60 |
|
addS |
y + suc 1 = suc (y + 1) |
| 61 |
60 |
conv d2 |
y + 2 = suc (y + 1) |
| 62 |
59, 61 |
ax_mp |
suc (y + 1) = suc (suc y) -> y + 2 = suc (suc y) |
| 63 |
|
suceq |
y + 1 = suc y -> suc (y + 1) = suc (suc y) |
| 64 |
|
add12 |
y + 1 = suc y |
| 65 |
63, 64 |
ax_mp |
suc (y + 1) = suc (suc y) |
| 66 |
62, 65 |
ax_mp |
y + 2 = suc (suc y) |
| 67 |
58, 66 |
ax_mp |
(y + 2) * suc y = suc (suc y) * suc y |
| 68 |
67 |
a1i |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (y + 2) * suc y = suc (suc y) * suc y |
| 69 |
57, 68 |
syl5eqr |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> y * suc y + 2 * suc y = suc (suc y) * suc y |
| 70 |
56, 69 |
eqtrd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> 2 * ((x + y) * suc (x + y) // 2) + 2 * suc y = suc (suc y) * suc y |
| 71 |
44, 70 |
syl6eqr |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> 2 * ((x + y) * suc (x + y) // 2) + 2 * suc y = 2 * (suc y * suc (suc y) // 2) |
| 72 |
37, 71 |
syl5eq |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> 2 * ((x + y) * suc (x + y) // 2 + suc y) = 2 * (suc y * suc (suc y) // 2) |
| 73 |
36, 72 |
sylib |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (x + y) * suc (x + y) // 2 + suc y = suc y * suc (suc y) // 2 |
| 74 |
|
add0 |
suc y * suc (suc y) // 2 + 0 = suc y * suc (suc y) // 2 |
| 75 |
|
add0 |
suc y + 0 = suc y |
| 76 |
|
anlr |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> m = suc y |
| 77 |
|
anr |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> n = 0 |
| 78 |
76, 77 |
addeqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> m + n = suc y + 0 |
| 79 |
75, 78 |
syl6eq |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> m + n = suc y |
| 80 |
79 |
suceqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> suc (m + n) = suc (suc y) |
| 81 |
79, 80 |
muleqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (m + n) * suc (m + n) = suc y * suc (suc y) |
| 82 |
81 |
diveq1d |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (m + n) * suc (m + n) // 2 = suc y * suc (suc y) // 2 |
| 83 |
82, 77 |
addeqd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (m + n) * suc (m + n) // 2 + n = suc y * suc (suc y) // 2 + 0 |
| 84 |
83 |
conv pr |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> m, n = suc y * suc (suc y) // 2 + 0 |
| 85 |
74, 84 |
syl6eq |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> m, n = suc y * suc (suc y) // 2 |
| 86 |
73, 85 |
eqtr4d |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> (x + y) * suc (x + y) // 2 + suc y = m, n |
| 87 |
33, 86 |
syl5eqr |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> suc (x, y) = m, n |
| 88 |
31, 87 |
eqtrd |
a1 = x, y /\ x = 0 /\ m = suc y /\ n = 0 -> suc a1 = m, n |
| 89 |
88 |
iexde |
a1 = x, y /\ x = 0 /\ m = suc y -> E. n suc a1 = m, n |
| 90 |
89 |
iexde |
a1 = x, y /\ x = 0 -> E. m E. n suc a1 = m, n |
| 91 |
90 |
exp |
a1 = x, y -> x = 0 -> E. m E. n suc a1 = m, n |
| 92 |
|
exsuc |
x != 0 <-> E. z x = suc z |
| 93 |
92 |
conv ne |
~x = 0 <-> E. z x = suc z |
| 94 |
|
suceq |
a1 = x, y -> suc a1 = suc (x, y) |
| 95 |
94 |
anw3l |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> suc a1 = suc (x, y) |
| 96 |
|
addSass |
suc z + y = z + suc y |
| 97 |
|
addeq1 |
x = suc z -> x + y = suc z + y |
| 98 |
97 |
anwr |
a1 = x, y /\ x = suc z -> x + y = suc z + y |
| 99 |
98 |
anwll |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> x + y = suc z + y |
| 100 |
96, 99 |
syl6eq |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> x + y = z + suc y |
| 101 |
|
anlr |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> m = z |
| 102 |
|
anr |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> n = suc y |
| 103 |
101, 102 |
addeqd |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> m + n = z + suc y |
| 104 |
100, 103 |
eqtr4d |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> x + y = m + n |
| 105 |
104 |
suceqd |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> suc (x + y) = suc (m + n) |
| 106 |
104, 105 |
muleqd |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> (x + y) * suc (x + y) = (m + n) * suc (m + n) |
| 107 |
106 |
diveq1d |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> (x + y) * suc (x + y) // 2 = (m + n) * suc (m + n) // 2 |
| 108 |
102 |
eqcomd |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> suc y = n |
| 109 |
107, 108 |
addeqd |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> (x + y) * suc (x + y) // 2 + suc y = (m + n) * suc (m + n) // 2 + n |
| 110 |
109 |
conv pr |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> (x + y) * suc (x + y) // 2 + suc y = m, n |
| 111 |
33, 110 |
syl5eqr |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> suc (x, y) = m, n |
| 112 |
95, 111 |
eqtrd |
a1 = x, y /\ x = suc z /\ m = z /\ n = suc y -> suc a1 = m, n |
| 113 |
112 |
iexde |
a1 = x, y /\ x = suc z /\ m = z -> E. n suc a1 = m, n |
| 114 |
113 |
iexde |
a1 = x, y /\ x = suc z -> E. m E. n suc a1 = m, n |
| 115 |
114 |
eexda |
a1 = x, y -> E. z x = suc z -> E. m E. n suc a1 = m, n |
| 116 |
93, 115 |
syl5bi |
a1 = x, y -> ~x = 0 -> E. m E. n suc a1 = m, n |
| 117 |
91, 116 |
casesd |
a1 = x, y -> E. m E. n suc a1 = m, n |
| 118 |
117 |
eex |
E. y a1 = x, y -> E. m E. n suc a1 = m, n |
| 119 |
118 |
eex |
E. x E. y a1 = x, y -> E. m E. n suc a1 = m, n |
| 120 |
29, 119 |
sylib |
E. x E. y a1 = x, y -> E. x E. y suc a1 = x, y |
| 121 |
4, 8, 12, 16, 23, 120 |
ind |
E. x E. y a = x, y |