Step | Hyp | Ref | Expression |
1 |
|
ifpos |
a < c -> if (a < c) (b1 (c - suc a)) (b0 (a - c)) = b1 (c - suc a) |
2 |
1 |
conv znsub |
a < c -> a -ZN c = b1 (c - suc a) |
3 |
2 |
anwl |
a < c /\ b < d -> a -ZN c = b1 (c - suc a) |
4 |
|
ifpos |
b < d -> if (b < d) (b1 (d - suc b)) (b0 (b - d)) = b1 (d - suc b) |
5 |
4 |
conv znsub |
b < d -> b -ZN d = b1 (d - suc b) |
6 |
5 |
anwr |
a < c /\ b < d -> b -ZN d = b1 (d - suc b) |
7 |
3, 6 |
eqeqd |
a < c /\ b < d -> (a -ZN c = b -ZN d <-> b1 (c - suc a) = b1 (d - suc b)) |
8 |
|
bitr4 |
(b1 (c - suc a) = b1 (d - suc b) <-> c - suc a = d - suc b) ->
(suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> c - suc a = d - suc b) ->
(b1 (c - suc a) = b1 (d - suc b) <-> suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a)) |
9 |
|
b1can |
b1 (c - suc a) = b1 (d - suc b) <-> c - suc a = d - suc b |
10 |
8, 9 |
ax_mp |
(suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> c - suc a = d - suc b) ->
(b1 (c - suc a) = b1 (d - suc b) <-> suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a)) |
11 |
|
bitr |
(suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> d - suc b = c - suc a) ->
(d - suc b = c - suc a <-> c - suc a = d - suc b) ->
(suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> c - suc a = d - suc b) |
12 |
|
addcan2 |
suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> d - suc b = c - suc a |
13 |
11, 12 |
ax_mp |
(d - suc b = c - suc a <-> c - suc a = d - suc b) -> (suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> c - suc a = d - suc b) |
14 |
|
eqcomb |
d - suc b = c - suc a <-> c - suc a = d - suc b |
15 |
13, 14 |
ax_mp |
suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> c - suc a = d - suc b |
16 |
10, 15 |
ax_mp |
b1 (c - suc a) = b1 (d - suc b) <-> suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) |
17 |
|
eqtr3 |
a + suc b + (d - suc b) = suc (a + b) + (d - suc b) ->
a + suc b + (d - suc b) = a + (suc b + (d - suc b)) ->
suc (a + b) + (d - suc b) = a + (suc b + (d - suc b)) |
18 |
|
addeq1 |
a + suc b = suc (a + b) -> a + suc b + (d - suc b) = suc (a + b) + (d - suc b) |
19 |
|
addS2 |
a + suc b = suc (a + b) |
20 |
18, 19 |
ax_mp |
a + suc b + (d - suc b) = suc (a + b) + (d - suc b) |
21 |
17, 20 |
ax_mp |
a + suc b + (d - suc b) = a + (suc b + (d - suc b)) -> suc (a + b) + (d - suc b) = a + (suc b + (d - suc b)) |
22 |
|
addass |
a + suc b + (d - suc b) = a + (suc b + (d - suc b)) |
23 |
21, 22 |
ax_mp |
suc (a + b) + (d - suc b) = a + (suc b + (d - suc b)) |
24 |
|
pncan3 |
suc b <= d -> suc b + (d - suc b) = d |
25 |
24 |
conv lt |
b < d -> suc b + (d - suc b) = d |
26 |
25 |
anwr |
a < c /\ b < d -> suc b + (d - suc b) = d |
27 |
26 |
addeq2d |
a < c /\ b < d -> a + (suc b + (d - suc b)) = a + d |
28 |
23, 27 |
syl5eq |
a < c /\ b < d -> suc (a + b) + (d - suc b) = a + d |
29 |
|
eqtr3 |
b + suc a + (c - suc a) = suc (a + b) + (c - suc a) ->
b + suc a + (c - suc a) = b + (suc a + (c - suc a)) ->
suc (a + b) + (c - suc a) = b + (suc a + (c - suc a)) |
30 |
|
addeq1 |
b + suc a = suc (a + b) -> b + suc a + (c - suc a) = suc (a + b) + (c - suc a) |
31 |
|
eqtr |
b + suc a = suc a + b -> suc a + b = suc (a + b) -> b + suc a = suc (a + b) |
32 |
|
addcom |
b + suc a = suc a + b |
33 |
31, 32 |
ax_mp |
suc a + b = suc (a + b) -> b + suc a = suc (a + b) |
34 |
|
addS1 |
suc a + b = suc (a + b) |
35 |
33, 34 |
ax_mp |
b + suc a = suc (a + b) |
36 |
30, 35 |
ax_mp |
b + suc a + (c - suc a) = suc (a + b) + (c - suc a) |
37 |
29, 36 |
ax_mp |
b + suc a + (c - suc a) = b + (suc a + (c - suc a)) -> suc (a + b) + (c - suc a) = b + (suc a + (c - suc a)) |
38 |
|
addass |
b + suc a + (c - suc a) = b + (suc a + (c - suc a)) |
39 |
37, 38 |
ax_mp |
suc (a + b) + (c - suc a) = b + (suc a + (c - suc a)) |
40 |
|
pncan3 |
suc a <= c -> suc a + (c - suc a) = c |
41 |
40 |
conv lt |
a < c -> suc a + (c - suc a) = c |
42 |
41 |
anwl |
a < c /\ b < d -> suc a + (c - suc a) = c |
43 |
42 |
addeq2d |
a < c /\ b < d -> b + (suc a + (c - suc a)) = b + c |
44 |
39, 43 |
syl5eq |
a < c /\ b < d -> suc (a + b) + (c - suc a) = b + c |
45 |
28, 44 |
eqeqd |
a < c /\ b < d -> (suc (a + b) + (d - suc b) = suc (a + b) + (c - suc a) <-> a + d = b + c) |
46 |
16, 45 |
syl5bb |
a < c /\ b < d -> (b1 (c - suc a) = b1 (d - suc b) <-> a + d = b + c) |
47 |
7, 46 |
bitrd |
a < c /\ b < d -> (a -ZN c = b -ZN d <-> a + d = b + c) |
48 |
2 |
anwl |
a < c /\ ~b < d -> a -ZN c = b1 (c - suc a) |
49 |
|
ifneg |
~b < d -> if (b < d) (b1 (d - suc b)) (b0 (b - d)) = b0 (b - d) |
50 |
49 |
conv znsub |
~b < d -> b -ZN d = b0 (b - d) |
51 |
50 |
anwr |
a < c /\ ~b < d -> b -ZN d = b0 (b - d) |
52 |
48, 51 |
eqeqd |
a < c /\ ~b < d -> (a -ZN c = b -ZN d <-> b1 (c - suc a) = b0 (b - d)) |
53 |
|
b1neb0 |
b1 (c - suc a) != b0 (b - d) |
54 |
53 |
conv ne |
~b1 (c - suc a) = b0 (b - d) |
55 |
54 |
a1i |
a < c /\ ~b < d -> ~b1 (c - suc a) = b0 (b - d) |
56 |
|
ltne |
a + d < b + c -> a + d != b + c |
57 |
56 |
conv ne |
a + d < b + c -> ~a + d = b + c |
58 |
|
ltadd1 |
a < c <-> a + d < c + d |
59 |
|
anl |
a < c /\ ~b < d -> a < c |
60 |
58, 59 |
sylib |
a < c /\ ~b < d -> a + d < c + d |
61 |
|
leeq2 |
c + b = b + c -> (c + d <= c + b <-> c + d <= b + c) |
62 |
|
addcom |
c + b = b + c |
63 |
61, 62 |
ax_mp |
c + d <= c + b <-> c + d <= b + c |
64 |
|
leadd2 |
d <= b <-> c + d <= c + b |
65 |
|
lenlt |
d <= b <-> ~b < d |
66 |
|
anr |
a < c /\ ~b < d -> ~b < d |
67 |
65, 66 |
sylibr |
a < c /\ ~b < d -> d <= b |
68 |
64, 67 |
sylib |
a < c /\ ~b < d -> c + d <= c + b |
69 |
63, 68 |
sylib |
a < c /\ ~b < d -> c + d <= b + c |
70 |
60, 69 |
ltletrd |
a < c /\ ~b < d -> a + d < b + c |
71 |
57, 70 |
syl |
a < c /\ ~b < d -> ~a + d = b + c |
72 |
55, 71 |
binthd |
a < c /\ ~b < d -> (b1 (c - suc a) = b0 (b - d) <-> a + d = b + c) |
73 |
52, 72 |
bitrd |
a < c /\ ~b < d -> (a -ZN c = b -ZN d <-> a + d = b + c) |
74 |
47, 73 |
casesda |
a < c -> (a -ZN c = b -ZN d <-> a + d = b + c) |
75 |
|
ifneg |
~a < c -> if (a < c) (b1 (c - suc a)) (b0 (a - c)) = b0 (a - c) |
76 |
75 |
conv znsub |
~a < c -> a -ZN c = b0 (a - c) |
77 |
76 |
anwl |
~a < c /\ b < d -> a -ZN c = b0 (a - c) |
78 |
5 |
anwr |
~a < c /\ b < d -> b -ZN d = b1 (d - suc b) |
79 |
77, 78 |
eqeqd |
~a < c /\ b < d -> (a -ZN c = b -ZN d <-> b0 (a - c) = b1 (d - suc b)) |
80 |
|
b0neb1 |
b0 (a - c) != b1 (d - suc b) |
81 |
80 |
conv ne |
~b0 (a - c) = b1 (d - suc b) |
82 |
81 |
a1i |
~a < c /\ b < d -> ~b0 (a - c) = b1 (d - suc b) |
83 |
|
ltner |
b + c < a + d -> a + d != b + c |
84 |
83 |
conv ne |
b + c < a + d -> ~a + d = b + c |
85 |
|
leadd2 |
c <= a <-> b + c <= b + a |
86 |
|
lenlt |
c <= a <-> ~a < c |
87 |
|
anl |
~a < c /\ b < d -> ~a < c |
88 |
86, 87 |
sylibr |
~a < c /\ b < d -> c <= a |
89 |
85, 88 |
sylib |
~a < c /\ b < d -> b + c <= b + a |
90 |
|
bitr |
(b < d <-> a + b < a + d) -> (a + b < a + d <-> b + a < a + d) -> (b < d <-> b + a < a + d) |
91 |
|
ltadd2 |
b < d <-> a + b < a + d |
92 |
90, 91 |
ax_mp |
(a + b < a + d <-> b + a < a + d) -> (b < d <-> b + a < a + d) |
93 |
|
lteq1 |
a + b = b + a -> (a + b < a + d <-> b + a < a + d) |
94 |
|
addcom |
a + b = b + a |
95 |
93, 94 |
ax_mp |
a + b < a + d <-> b + a < a + d |
96 |
92, 95 |
ax_mp |
b < d <-> b + a < a + d |
97 |
|
anr |
~a < c /\ b < d -> b < d |
98 |
96, 97 |
sylib |
~a < c /\ b < d -> b + a < a + d |
99 |
89, 98 |
lelttrd |
~a < c /\ b < d -> b + c < a + d |
100 |
84, 99 |
syl |
~a < c /\ b < d -> ~a + d = b + c |
101 |
82, 100 |
binthd |
~a < c /\ b < d -> (b0 (a - c) = b1 (d - suc b) <-> a + d = b + c) |
102 |
79, 101 |
bitrd |
~a < c /\ b < d -> (a -ZN c = b -ZN d <-> a + d = b + c) |
103 |
76 |
anwl |
~a < c /\ ~b < d -> a -ZN c = b0 (a - c) |
104 |
50 |
anwr |
~a < c /\ ~b < d -> b -ZN d = b0 (b - d) |
105 |
103, 104 |
eqeqd |
~a < c /\ ~b < d -> (a -ZN c = b -ZN d <-> b0 (a - c) = b0 (b - d)) |
106 |
|
b0can |
b0 (a - c) = b0 (b - d) <-> a - c = b - d |
107 |
|
addcan1 |
a - c + (c + d) = b - d + (c + d) <-> a - c = b - d |
108 |
|
addass |
a - c + c + d = a - c + (c + d) |
109 |
|
npcan |
c <= a -> a - c + c = a |
110 |
|
anl |
~a < c /\ ~b < d -> ~a < c |
111 |
86, 110 |
sylibr |
~a < c /\ ~b < d -> c <= a |
112 |
109, 111 |
syl |
~a < c /\ ~b < d -> a - c + c = a |
113 |
112 |
addeq1d |
~a < c /\ ~b < d -> a - c + c + d = a + d |
114 |
108, 113 |
syl5eqr |
~a < c /\ ~b < d -> a - c + (c + d) = a + d |
115 |
|
addass |
b - d + c + d = b - d + (c + d) |
116 |
|
addrass |
b - d + c + d = b - d + d + c |
117 |
|
npcan |
d <= b -> b - d + d = b |
118 |
|
anr |
~a < c /\ ~b < d -> ~b < d |
119 |
65, 118 |
sylibr |
~a < c /\ ~b < d -> d <= b |
120 |
117, 119 |
syl |
~a < c /\ ~b < d -> b - d + d = b |
121 |
120 |
addeq1d |
~a < c /\ ~b < d -> b - d + d + c = b + c |
122 |
116, 121 |
syl5eq |
~a < c /\ ~b < d -> b - d + c + d = b + c |
123 |
115, 122 |
syl5eqr |
~a < c /\ ~b < d -> b - d + (c + d) = b + c |
124 |
114, 123 |
eqeqd |
~a < c /\ ~b < d -> (a - c + (c + d) = b - d + (c + d) <-> a + d = b + c) |
125 |
107, 124 |
syl5bbr |
~a < c /\ ~b < d -> (a - c = b - d <-> a + d = b + c) |
126 |
106, 125 |
syl5bb |
~a < c /\ ~b < d -> (b0 (a - c) = b0 (b - d) <-> a + d = b + c) |
127 |
105, 126 |
bitrd |
~a < c /\ ~b < d -> (a -ZN c = b -ZN d <-> a + d = b + c) |
128 |
102, 127 |
casesda |
~a < c -> (a -ZN c = b -ZN d <-> a + d = b + c) |
129 |
74, 128 |
cases |
a -ZN c = b -ZN d <-> a + d = b + c |