| Step | Hyp | Ref | Expression |
| 1 |
|
eqsidd |
x = n -> S == S |
| 2 |
|
id |
x = n -> x = n |
| 3 |
1, 2 |
srecauxeqd |
x = n -> srecaux S x = srecaux S n |
| 4 |
3 |
nseqd |
x = n -> srecaux S x == srecaux S n |
| 5 |
4 |
dmeqd |
x = n -> Dom (srecaux S x) == Dom (srecaux S n) |
| 6 |
2 |
uptoeqd |
x = n -> upto x = upto n |
| 7 |
6 |
nseqd |
x = n -> upto x == upto n |
| 8 |
5, 7 |
eqseqd |
x = n -> (Dom (srecaux S x) == upto x <-> Dom (srecaux S n) == upto n) |
| 9 |
|
eqsidd |
x = 0 -> S == S |
| 10 |
|
id |
x = 0 -> x = 0 |
| 11 |
9, 10 |
srecauxeqd |
x = 0 -> srecaux S x = srecaux S 0 |
| 12 |
11 |
nseqd |
x = 0 -> srecaux S x == srecaux S 0 |
| 13 |
12 |
dmeqd |
x = 0 -> Dom (srecaux S x) == Dom (srecaux S 0) |
| 14 |
10 |
uptoeqd |
x = 0 -> upto x = upto 0 |
| 15 |
14 |
nseqd |
x = 0 -> upto x == upto 0 |
| 16 |
13, 15 |
eqseqd |
x = 0 -> (Dom (srecaux S x) == upto x <-> Dom (srecaux S 0) == upto 0) |
| 17 |
|
eqsidd |
x = y -> S == S |
| 18 |
|
id |
x = y -> x = y |
| 19 |
17, 18 |
srecauxeqd |
x = y -> srecaux S x = srecaux S y |
| 20 |
19 |
nseqd |
x = y -> srecaux S x == srecaux S y |
| 21 |
20 |
dmeqd |
x = y -> Dom (srecaux S x) == Dom (srecaux S y) |
| 22 |
18 |
uptoeqd |
x = y -> upto x = upto y |
| 23 |
22 |
nseqd |
x = y -> upto x == upto y |
| 24 |
21, 23 |
eqseqd |
x = y -> (Dom (srecaux S x) == upto x <-> Dom (srecaux S y) == upto y) |
| 25 |
|
eqsidd |
x = suc y -> S == S |
| 26 |
|
id |
x = suc y -> x = suc y |
| 27 |
25, 26 |
srecauxeqd |
x = suc y -> srecaux S x = srecaux S (suc y) |
| 28 |
27 |
nseqd |
x = suc y -> srecaux S x == srecaux S (suc y) |
| 29 |
28 |
dmeqd |
x = suc y -> Dom (srecaux S x) == Dom (srecaux S (suc y)) |
| 30 |
26 |
uptoeqd |
x = suc y -> upto x = upto (suc y) |
| 31 |
30 |
nseqd |
x = suc y -> upto x == upto (suc y) |
| 32 |
29, 31 |
eqseqd |
x = suc y -> (Dom (srecaux S x) == upto x <-> Dom (srecaux S (suc y)) == upto (suc y)) |
| 33 |
|
eqstr |
Dom (srecaux S 0) == Dom 0 -> Dom 0 == upto 0 -> Dom (srecaux S 0) == upto 0 |
| 34 |
|
dmeq |
srecaux S 0 == 0 -> Dom (srecaux S 0) == Dom 0 |
| 35 |
|
nseq |
srecaux S 0 = 0 -> srecaux S 0 == 0 |
| 36 |
|
srecaux0 |
srecaux S 0 = 0 |
| 37 |
35, 36 |
ax_mp |
srecaux S 0 == 0 |
| 38 |
34, 37 |
ax_mp |
Dom (srecaux S 0) == Dom 0 |
| 39 |
33, 38 |
ax_mp |
Dom 0 == upto 0 -> Dom (srecaux S 0) == upto 0 |
| 40 |
|
eqstr4 |
Dom 0 == 0 -> upto 0 == 0 -> Dom 0 == upto 0 |
| 41 |
|
dm0 |
Dom 0 == 0 |
| 42 |
40, 41 |
ax_mp |
upto 0 == 0 -> Dom 0 == upto 0 |
| 43 |
|
nseq |
upto 0 = 0 -> upto 0 == 0 |
| 44 |
|
upto0 |
upto 0 = 0 |
| 45 |
43, 44 |
ax_mp |
upto 0 == 0 |
| 46 |
42, 45 |
ax_mp |
Dom 0 == upto 0 |
| 47 |
39, 46 |
ax_mp |
Dom (srecaux S 0) == upto 0 |
| 48 |
|
eqstr |
Dom (srecaux S (suc y)) == Dom (write (srecaux S y) y (S @ srecaux S y)) ->
Dom (write (srecaux S y) y (S @ srecaux S y)) == Dom (srecaux S y) u. sn y ->
Dom (srecaux S (suc y)) == Dom (srecaux S y) u. sn y |
| 49 |
|
dmeq |
srecaux S (suc y) == write (srecaux S y) y (S @ srecaux S y) -> Dom (srecaux S (suc y)) == Dom (write (srecaux S y) y (S @ srecaux S y)) |
| 50 |
|
srecauxS |
srecaux S (suc y) == write (srecaux S y) y (S @ srecaux S y) |
| 51 |
49, 50 |
ax_mp |
Dom (srecaux S (suc y)) == Dom (write (srecaux S y) y (S @ srecaux S y)) |
| 52 |
48, 51 |
ax_mp |
Dom (write (srecaux S y) y (S @ srecaux S y)) == Dom (srecaux S y) u. sn y -> Dom (srecaux S (suc y)) == Dom (srecaux S y) u. sn y |
| 53 |
|
dmwrite |
Dom (write (srecaux S y) y (S @ srecaux S y)) == Dom (srecaux S y) u. sn y |
| 54 |
52, 53 |
ax_mp |
Dom (srecaux S (suc y)) == Dom (srecaux S y) u. sn y |
| 55 |
|
bitr |
(z e. upto (suc y) <-> z < suc y) -> (z < suc y <-> z e. upto y u. sn y) -> (z e. upto (suc y) <-> z e. upto y u. sn y) |
| 56 |
|
elupto |
z e. upto (suc y) <-> z < suc y |
| 57 |
55, 56 |
ax_mp |
(z < suc y <-> z e. upto y u. sn y) -> (z e. upto (suc y) <-> z e. upto y u. sn y) |
| 58 |
|
bitr3 |
(z <= y <-> z < suc y) -> (z <= y <-> z e. upto y u. sn y) -> (z < suc y <-> z e. upto y u. sn y) |
| 59 |
|
leltsuc |
z <= y <-> z < suc y |
| 60 |
58, 59 |
ax_mp |
(z <= y <-> z e. upto y u. sn y) -> (z < suc y <-> z e. upto y u. sn y) |
| 61 |
|
bitr4 |
(z <= y <-> z < y \/ z = y) -> (z e. upto y u. sn y <-> z < y \/ z = y) -> (z <= y <-> z e. upto y u. sn y) |
| 62 |
|
leloe |
z <= y <-> z < y \/ z = y |
| 63 |
61, 62 |
ax_mp |
(z e. upto y u. sn y <-> z < y \/ z = y) -> (z <= y <-> z e. upto y u. sn y) |
| 64 |
|
bitr |
(z e. upto y u. sn y <-> z e. upto y \/ z e. sn y) -> (z e. upto y \/ z e. sn y <-> z < y \/ z = y) -> (z e. upto y u. sn y <-> z < y \/ z = y) |
| 65 |
|
elun |
z e. upto y u. sn y <-> z e. upto y \/ z e. sn y |
| 66 |
64, 65 |
ax_mp |
(z e. upto y \/ z e. sn y <-> z < y \/ z = y) -> (z e. upto y u. sn y <-> z < y \/ z = y) |
| 67 |
|
oreq |
(z e. upto y <-> z < y) -> (z e. sn y <-> z = y) -> (z e. upto y \/ z e. sn y <-> z < y \/ z = y) |
| 68 |
|
elupto |
z e. upto y <-> z < y |
| 69 |
67, 68 |
ax_mp |
(z e. sn y <-> z = y) -> (z e. upto y \/ z e. sn y <-> z < y \/ z = y) |
| 70 |
|
elsn |
z e. sn y <-> z = y |
| 71 |
69, 70 |
ax_mp |
z e. upto y \/ z e. sn y <-> z < y \/ z = y |
| 72 |
66, 71 |
ax_mp |
z e. upto y u. sn y <-> z < y \/ z = y |
| 73 |
63, 72 |
ax_mp |
z <= y <-> z e. upto y u. sn y |
| 74 |
60, 73 |
ax_mp |
z < suc y <-> z e. upto y u. sn y |
| 75 |
57, 74 |
ax_mp |
z e. upto (suc y) <-> z e. upto y u. sn y |
| 76 |
75 |
eqri |
upto (suc y) == upto y u. sn y |
| 77 |
|
uneq1 |
Dom (srecaux S y) == upto y -> Dom (srecaux S y) u. sn y == upto y u. sn y |
| 78 |
54, 76, 77 |
eqstr4g |
Dom (srecaux S y) == upto y -> Dom (srecaux S (suc y)) == upto (suc y) |
| 79 |
8, 16, 24, 32, 47, 78 |
ind |
Dom (srecaux S n) == upto n |