| Step | Hyp | Ref | Expression |
| 1 |
|
id |
y = z -> y = z |
| 2 |
1 |
addeq2d |
y = z -> x + y = x + z |
| 3 |
2 |
eleq1d |
y = z -> (x + y e. A <-> x + z e. A) |
| 4 |
3 |
bieq2d |
y = z -> (x e. n <-> x + y e. A <-> (x e. n <-> x + z e. A)) |
| 5 |
4 |
aleqd |
y = z -> (A. x (x e. n <-> x + y e. A) <-> A. x (x e. n <-> x + z e. A)) |
| 6 |
5 |
exeqd |
y = z -> (E. n A. x (x e. n <-> x + y e. A) <-> E. n A. x (x e. n <-> x + z e. A)) |
| 7 |
6 |
imeq1d |
y = z -> (E. n A. x (x e. n <-> x + y e. A) -> E. n A == n <-> E. n A. x (x e. n <-> x + z e. A) -> E. n A == n) |
| 8 |
|
id |
y = 0 -> y = 0 |
| 9 |
8 |
addeq2d |
y = 0 -> x + y = x + 0 |
| 10 |
9 |
eleq1d |
y = 0 -> (x + y e. A <-> x + 0 e. A) |
| 11 |
10 |
bieq2d |
y = 0 -> (x e. n <-> x + y e. A <-> (x e. n <-> x + 0 e. A)) |
| 12 |
11 |
aleqd |
y = 0 -> (A. x (x e. n <-> x + y e. A) <-> A. x (x e. n <-> x + 0 e. A)) |
| 13 |
12 |
exeqd |
y = 0 -> (E. n A. x (x e. n <-> x + y e. A) <-> E. n A. x (x e. n <-> x + 0 e. A)) |
| 14 |
13 |
imeq1d |
y = 0 -> (E. n A. x (x e. n <-> x + y e. A) -> E. n A == n <-> E. n A. x (x e. n <-> x + 0 e. A) -> E. n A == n) |
| 15 |
|
id |
y = suc z -> y = suc z |
| 16 |
15 |
addeq2d |
y = suc z -> x + y = x + suc z |
| 17 |
16 |
eleq1d |
y = suc z -> (x + y e. A <-> x + suc z e. A) |
| 18 |
17 |
bieq2d |
y = suc z -> (x e. n <-> x + y e. A <-> (x e. n <-> x + suc z e. A)) |
| 19 |
18 |
aleqd |
y = suc z -> (A. x (x e. n <-> x + y e. A) <-> A. x (x e. n <-> x + suc z e. A)) |
| 20 |
19 |
exeqd |
y = suc z -> (E. n A. x (x e. n <-> x + y e. A) <-> E. n A. x (x e. n <-> x + suc z e. A)) |
| 21 |
20 |
imeq1d |
y = suc z -> (E. n A. x (x e. n <-> x + y e. A) -> E. n A == n <-> E. n A. x (x e. n <-> x + suc z e. A) -> E. n A == n) |
| 22 |
|
eleq1 |
x + 0 = x -> (x + 0 e. A <-> x e. A) |
| 23 |
|
add0 |
x + 0 = x |
| 24 |
22, 23 |
ax_mp |
x + 0 e. A <-> x e. A |
| 25 |
|
id |
(x e. n <-> x + 0 e. A) -> (x e. n <-> x + 0 e. A) |
| 26 |
24, 25 |
syl6bb |
(x e. n <-> x + 0 e. A) -> (x e. n <-> x e. A) |
| 27 |
26 |
bicomd |
(x e. n <-> x + 0 e. A) -> (x e. A <-> x e. n) |
| 28 |
27 |
alimi |
A. x (x e. n <-> x + 0 e. A) -> A. x (x e. A <-> x e. n) |
| 29 |
28 |
conv eqs |
A. x (x e. n <-> x + 0 e. A) -> A == n |
| 30 |
29 |
eximi |
E. n A. x (x e. n <-> x + 0 e. A) -> E. n A == n |
| 31 |
|
anr |
m = n /\ y = x -> y = x |
| 32 |
|
anl |
m = n /\ y = x -> m = n |
| 33 |
31, 32 |
elneqd |
m = n /\ y = x -> (y e. m <-> x e. n) |
| 34 |
|
addeq1 |
y = x -> y + z = x + z |
| 35 |
34 |
anwr |
m = n /\ y = x -> y + z = x + z |
| 36 |
35 |
eleq1d |
m = n /\ y = x -> (y + z e. A <-> x + z e. A) |
| 37 |
33, 36 |
bieqd |
m = n /\ y = x -> (y e. m <-> y + z e. A <-> (x e. n <-> x + z e. A)) |
| 38 |
37 |
cbvald |
m = n -> (A. y (y e. m <-> y + z e. A) <-> A. x (x e. n <-> x + z e. A)) |
| 39 |
38 |
cbvex |
E. m A. y (y e. m <-> y + z e. A) <-> E. n A. x (x e. n <-> x + z e. A) |
| 40 |
|
bitr |
(0 e. if (z e. A) (b1 n) (b0 n) <-> odd (if (z e. A) (b1 n) (b0 n))) ->
(odd (if (z e. A) (b1 n) (b0 n)) <-> z e. A) ->
(0 e. if (z e. A) (b1 n) (b0 n) <-> z e. A) |
| 41 |
|
el01 |
0 e. if (z e. A) (b1 n) (b0 n) <-> odd (if (z e. A) (b1 n) (b0 n)) |
| 42 |
40, 41 |
ax_mp |
(odd (if (z e. A) (b1 n) (b0 n)) <-> z e. A) -> (0 e. if (z e. A) (b1 n) (b0 n) <-> z e. A) |
| 43 |
|
ax_3 |
(~z e. A -> ~odd (if (z e. A) (b1 n) (b0 n))) -> odd (if (z e. A) (b1 n) (b0 n)) -> z e. A |
| 44 |
|
ifneg |
~z e. A -> if (z e. A) (b1 n) (b0 n) = b0 n |
| 45 |
44 |
oddeqd |
~z e. A -> (odd (if (z e. A) (b1 n) (b0 n)) <-> odd (b0 n)) |
| 46 |
|
b0odd |
~odd (b0 n) |
| 47 |
46 |
a1i |
~z e. A -> ~odd (b0 n) |
| 48 |
45, 47 |
mtbird |
~z e. A -> ~odd (if (z e. A) (b1 n) (b0 n)) |
| 49 |
43, 48 |
ax_mp |
odd (if (z e. A) (b1 n) (b0 n)) -> z e. A |
| 50 |
|
b1odd |
odd (b1 n) |
| 51 |
|
ifpos |
z e. A -> if (z e. A) (b1 n) (b0 n) = b1 n |
| 52 |
51 |
oddeqd |
z e. A -> (odd (if (z e. A) (b1 n) (b0 n)) <-> odd (b1 n)) |
| 53 |
50, 52 |
mpbiri |
z e. A -> odd (if (z e. A) (b1 n) (b0 n)) |
| 54 |
49, 53 |
ibii |
odd (if (z e. A) (b1 n) (b0 n)) <-> z e. A |
| 55 |
42, 54 |
ax_mp |
0 e. if (z e. A) (b1 n) (b0 n) <-> z e. A |
| 56 |
|
anr |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> y = 0 |
| 57 |
|
anl |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> m = if (z e. A) (b1 n) (b0 n) |
| 58 |
56, 57 |
elneqd |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> (y e. m <-> 0 e. if (z e. A) (b1 n) (b0 n)) |
| 59 |
|
add01 |
0 + z = z |
| 60 |
|
addeq1 |
y = 0 -> y + z = 0 + z |
| 61 |
60 |
anwr |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> y + z = 0 + z |
| 62 |
59, 61 |
syl6eq |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> y + z = z |
| 63 |
62 |
eleq1d |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> (y + z e. A <-> z e. A) |
| 64 |
58, 63 |
bieqd |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> (y e. m <-> y + z e. A <-> (0 e. if (z e. A) (b1 n) (b0 n) <-> z e. A)) |
| 65 |
55, 64 |
mpbiri |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> (y e. m <-> y + z e. A) |
| 66 |
65 |
a1d |
m = if (z e. A) (b1 n) (b0 n) /\ y = 0 -> A. x (x e. n <-> x + suc z e. A) -> (y e. m <-> y + z e. A) |
| 67 |
|
bitr3 |
(y - 1 e. if (z e. A) (b1 n) (b0 n) // 2 <-> y - 1 e. n) ->
(y - 1 e. if (z e. A) (b1 n) (b0 n) // 2 <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n)) ->
(y - 1 e. n <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n)) |
| 68 |
|
elneq2 |
if (z e. A) (b1 n) (b0 n) // 2 = n -> (y - 1 e. if (z e. A) (b1 n) (b0 n) // 2 <-> y - 1 e. n) |
| 69 |
|
b1div2 |
b1 n // 2 = n |
| 70 |
51 |
diveq1d |
z e. A -> if (z e. A) (b1 n) (b0 n) // 2 = b1 n // 2 |
| 71 |
69, 70 |
syl6eq |
z e. A -> if (z e. A) (b1 n) (b0 n) // 2 = n |
| 72 |
|
b0div2 |
b0 n // 2 = n |
| 73 |
44 |
diveq1d |
~z e. A -> if (z e. A) (b1 n) (b0 n) // 2 = b0 n // 2 |
| 74 |
72, 73 |
syl6eq |
~z e. A -> if (z e. A) (b1 n) (b0 n) // 2 = n |
| 75 |
71, 74 |
cases |
if (z e. A) (b1 n) (b0 n) // 2 = n |
| 76 |
68, 75 |
ax_mp |
y - 1 e. if (z e. A) (b1 n) (b0 n) // 2 <-> y - 1 e. n |
| 77 |
67, 76 |
ax_mp |
(y - 1 e. if (z e. A) (b1 n) (b0 n) // 2 <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n)) -> (y - 1 e. n <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n)) |
| 78 |
|
eldiv2 |
y - 1 e. if (z e. A) (b1 n) (b0 n) // 2 <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n) |
| 79 |
77, 78 |
ax_mp |
y - 1 e. n <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n) |
| 80 |
|
anr |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> x = y - 1 |
| 81 |
80 |
eleq1d |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (x e. n <-> y - 1 e. n) |
| 82 |
|
sub1can |
y != 0 -> suc (y - 1) = y |
| 83 |
|
anlr |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> ~y = 0 |
| 84 |
83 |
conv ne |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> y != 0 |
| 85 |
82, 84 |
syl |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> suc (y - 1) = y |
| 86 |
85 |
eqcomd |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> y = suc (y - 1) |
| 87 |
|
anll |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> m = if (z e. A) (b1 n) (b0 n) |
| 88 |
86, 87 |
elneqd |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (y e. m <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n)) |
| 89 |
81, 88 |
bieqd |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (x e. n <-> y e. m <-> (y - 1 e. n <-> suc (y - 1) e. if (z e. A) (b1 n) (b0 n))) |
| 90 |
79, 89 |
mpbiri |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (x e. n <-> y e. m) |
| 91 |
|
addSass |
suc x + z = x + suc z |
| 92 |
80 |
suceqd |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> suc x = suc (y - 1) |
| 93 |
92, 85 |
eqtrd |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> suc x = y |
| 94 |
93 |
addeq1d |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> suc x + z = y + z |
| 95 |
91, 94 |
syl5eqr |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> x + suc z = y + z |
| 96 |
95 |
eleq1d |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (x + suc z e. A <-> y + z e. A) |
| 97 |
90, 96 |
bieqd |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (x e. n <-> x + suc z e. A <-> (y e. m <-> y + z e. A)) |
| 98 |
97 |
bi1d |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 /\ x = y - 1 -> (x e. n <-> x + suc z e. A) -> (y e. m <-> y + z e. A) |
| 99 |
98 |
ealde |
m = if (z e. A) (b1 n) (b0 n) /\ ~y = 0 -> A. x (x e. n <-> x + suc z e. A) -> (y e. m <-> y + z e. A) |
| 100 |
66, 99 |
casesda |
m = if (z e. A) (b1 n) (b0 n) -> A. x (x e. n <-> x + suc z e. A) -> (y e. m <-> y + z e. A) |
| 101 |
100 |
impcom |
A. x (x e. n <-> x + suc z e. A) /\ m = if (z e. A) (b1 n) (b0 n) -> (y e. m <-> y + z e. A) |
| 102 |
101 |
iald |
A. x (x e. n <-> x + suc z e. A) /\ m = if (z e. A) (b1 n) (b0 n) -> A. y (y e. m <-> y + z e. A) |
| 103 |
102 |
iexde |
A. x (x e. n <-> x + suc z e. A) -> E. m A. y (y e. m <-> y + z e. A) |
| 104 |
103 |
eex |
E. n A. x (x e. n <-> x + suc z e. A) -> E. m A. y (y e. m <-> y + z e. A) |
| 105 |
39, 104 |
sylib |
E. n A. x (x e. n <-> x + suc z e. A) -> E. n A. x (x e. n <-> x + z e. A) |
| 106 |
105 |
imim1i |
(E. n A. x (x e. n <-> x + z e. A) -> E. n A == n) -> E. n A. x (x e. n <-> x + suc z e. A) -> E. n A == n |
| 107 |
7, 14, 7, 21, 30, 106 |
ind |
E. n A. x (x e. n <-> x + z e. A) -> E. n A == n |
| 108 |
|
anr |
A. y (y e. A -> y < z) /\ n = 0 -> n = 0 |
| 109 |
108 |
elneq2d |
A. y (y e. A -> y < z) /\ n = 0 -> (x e. n <-> x e. 0) |
| 110 |
|
el02 |
~x e. 0 |
| 111 |
110 |
a1i |
A. y (y e. A -> y < z) /\ n = 0 -> ~x e. 0 |
| 112 |
|
lenlt |
z <= x + z <-> ~x + z < z |
| 113 |
|
leaddid2 |
z <= x + z |
| 114 |
112, 113 |
mpbi |
~x + z < z |
| 115 |
114 |
a1i |
A. y (y e. A -> y < z) /\ n = 0 -> ~x + z < z |
| 116 |
|
eleq1 |
y = x + z -> (y e. A <-> x + z e. A) |
| 117 |
|
lteq1 |
y = x + z -> (y < z <-> x + z < z) |
| 118 |
116, 117 |
imeqd |
y = x + z -> (y e. A -> y < z <-> x + z e. A -> x + z < z) |
| 119 |
118 |
eale |
A. y (y e. A -> y < z) -> x + z e. A -> x + z < z |
| 120 |
119 |
anwl |
A. y (y e. A -> y < z) /\ n = 0 -> x + z e. A -> x + z < z |
| 121 |
115, 120 |
mtd |
A. y (y e. A -> y < z) /\ n = 0 -> ~x + z e. A |
| 122 |
111, 121 |
binthd |
A. y (y e. A -> y < z) /\ n = 0 -> (x e. 0 <-> x + z e. A) |
| 123 |
109, 122 |
bitrd |
A. y (y e. A -> y < z) /\ n = 0 -> (x e. n <-> x + z e. A) |
| 124 |
123 |
iald |
A. y (y e. A -> y < z) /\ n = 0 -> A. x (x e. n <-> x + z e. A) |
| 125 |
124 |
iexde |
A. y (y e. A -> y < z) -> E. n A. x (x e. n <-> x + z e. A) |
| 126 |
107, 125 |
syl |
A. y (y e. A -> y < z) -> E. n A == n |
| 127 |
126 |
eex |
E. z A. y (y e. A -> y < z) -> E. n A == n |
| 128 |
127 |
conv finite |
finite A -> E. n A == n |
| 129 |
|
id |
A == n -> A == n |
| 130 |
|
nsinj |
x == n <-> x = n |
| 131 |
|
eqseq2 |
A == n -> (x == A <-> x == n) |
| 132 |
130, 131 |
syl6bb |
A == n -> (x == A <-> x = n) |
| 133 |
132 |
eqtheabd |
A == n -> the {x | x == A} = n |
| 134 |
133 |
conv lower |
A == n -> lower A = n |
| 135 |
134 |
eqcomd |
A == n -> n = lower A |
| 136 |
135 |
nseqd |
A == n -> n == lower A |
| 137 |
129, 136 |
eqstrd |
A == n -> A == lower A |
| 138 |
137 |
eex |
E. n A == n -> A == lower A |
| 139 |
128, 138 |
rsyl |
finite A -> A == lower A |
| 140 |
|
finns |
finite (lower A) |
| 141 |
|
fineq |
A == lower A -> (finite A <-> finite (lower A)) |
| 142 |
140, 141 |
mpbiri |
A == lower A -> finite A |
| 143 |
139, 142 |
ibii |
finite A <-> A == lower A |