At:
rem add21
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 rem n)+(y rem n)) rem n) > 0 (x rem n)+(y rem n) > 0
16.
x+y = 0
x+y = ((x n)+(y n)+(((x rem n)+(y rem n)) n)+if (x+y < 0)(0 < (((x rem n)+(y rem n)) rem n))if n < 0 -1 else 1 fi ;((((x rem n)+(y rem n)) rem n) < 0)(0 < x+y)if n < 0 1 else -1 fi else 0 fi)n+(((x rem n)+(y rem n)) rem n)+if (x+y < 0)(0 < (((x rem n)+(y rem n)) rem n))-|n| ;((((x rem n)+(y rem n)) rem n) < 0)(0 < x+y)|n| else 0 fi
By:
Unfold `absval` 0
THEN
AutoBoolCase (x+y < 0)
THEN
SplitOnConclITE
THEN
AutoBoolCase (0 < x+y)
THEN
SplitOnConclITE
THEN
SplitOnConclITE
Generated subgoals: