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