At:
rem add231
1.
x:
2.
y:
3.
n:
4.
x = (x n)n+(x rem n)
5.
|x rem n| < |n|
6.
(x rem n) < 0 x < 0
7.
(x rem n) > 0 x > 0
8.
y = (y n)n+(y rem n)
9.
|y rem n| < |n|
10.
(y rem n) < 0 y < 0
11.
(y rem n) > 0 y > 0
12.
(x rem n)+(y rem n) = (((x rem n)+(y rem n)) n)n+(((x rem n)+(y rem n)) rem n)
13.
|((x rem n)+(y rem n)) rem n| < |n|
14.
(((x rem n)+(y rem n)) rem n) > 0 (x rem n)+(y rem n) > 0
15.
x+y = 0
16.
0x+y
17.
(((x rem n)+(y rem n)) rem n) < 0
18.
(x rem n)+(y rem n) < 0
19.
0 < x+y
(((x rem n)+(y rem n)) rem n)+|n| < 0 x+y < 0
By:
MoveToConcl -7
THEN
Unfold `absval` 0
THEN
RepeatFor 2 SplitOnConclITE
Generated subgoals: