Step | Hyp | Ref | Expression |
1 |
|
addcan1 |
a + c = b + c <-> a = b |
2 |
|
prlem2 |
a, c <= b, d -> a + c <= b + d |
3 |
|
eqle |
a, c = b, d -> a, c <= b, d |
4 |
2, 3 |
syl |
a, c = b, d -> a + c <= b + d |
5 |
|
prlem2 |
b, d <= a, c -> b + d <= a + c |
6 |
|
eqler |
a, c = b, d -> b, d <= a, c |
7 |
5, 6 |
syl |
a, c = b, d -> b + d <= a + c |
8 |
4, 7 |
leasymd |
a, c = b, d -> a + c = b + d |
9 |
|
addcan2 |
b + c = b + d <-> c = d |
10 |
|
addcan2 |
(b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d <-> c = d |
11 |
|
id |
a + c = b + d -> a + c = b + d |
12 |
|
suceq |
a + c = b + d -> suc (a + c) = suc (b + d) |
13 |
11, 12 |
muleqd |
a + c = b + d -> (a + c) * suc (a + c) = (b + d) * suc (b + d) |
14 |
13 |
diveq1d |
a + c = b + d -> (a + c) * suc (a + c) // 2 = (b + d) * suc (b + d) // 2 |
15 |
14 |
addeq1d |
a + c = b + d -> (a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + c |
16 |
15 |
eqeq1d |
a + c = b + d -> ((a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + d <-> (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d) |
17 |
8, 16 |
rsyl |
a, c = b, d -> ((a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + d <-> (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d) |
18 |
|
id |
a, c = b, d -> a, c = b, d |
19 |
18 |
conv pr |
a, c = b, d -> (a + c) * suc (a + c) // 2 + c = (b + d) * suc (b + d) // 2 + d |
20 |
17, 19 |
mpbid |
a, c = b, d -> (b + d) * suc (b + d) // 2 + c = (b + d) * suc (b + d) // 2 + d |
21 |
10, 20 |
sylib |
a, c = b, d -> c = d |
22 |
9, 21 |
sylibr |
a, c = b, d -> b + c = b + d |
23 |
8, 22 |
eqtr4d |
a, c = b, d -> a + c = b + c |
24 |
1, 23 |
sylib |
a, c = b, d -> a = b |
25 |
24, 21 |
iand |
a, c = b, d -> a = b /\ c = d |
26 |
|
anl |
a = b /\ c = d -> a = b |
27 |
|
anr |
a = b /\ c = d -> c = d |
28 |
26, 27 |
preqd |
a = b /\ c = d -> a, c = b, d |
29 |
25, 28 |
ibii |
a, c = b, d <-> a = b /\ c = d |