| Step | Hyp | Ref | Expression |
| 1 |
|
id |
x = n -> x = n |
| 2 |
1 |
lteq2d |
x = n -> (a < x <-> a < n) |
| 3 |
1 |
srecauxeq2d |
x = n -> srecaux S x = srecaux S n |
| 4 |
3 |
nseqd |
x = n -> srecaux S x == srecaux S n |
| 5 |
4 |
appeq1d |
x = n -> srecaux S x @ a = srecaux S n @ a |
| 6 |
5 |
eqeq1d |
x = n -> (srecaux S x @ a = srec S a <-> srecaux S n @ a = srec S a) |
| 7 |
2, 6 |
imeqd |
x = n -> (a < x -> srecaux S x @ a = srec S a <-> a < n -> srecaux S n @ a = srec S a) |
| 8 |
|
id |
x = 0 -> x = 0 |
| 9 |
8 |
lteq2d |
x = 0 -> (a < x <-> a < 0) |
| 10 |
8 |
srecauxeq2d |
x = 0 -> srecaux S x = srecaux S 0 |
| 11 |
10 |
nseqd |
x = 0 -> srecaux S x == srecaux S 0 |
| 12 |
11 |
appeq1d |
x = 0 -> srecaux S x @ a = srecaux S 0 @ a |
| 13 |
12 |
eqeq1d |
x = 0 -> (srecaux S x @ a = srec S a <-> srecaux S 0 @ a = srec S a) |
| 14 |
9, 13 |
imeqd |
x = 0 -> (a < x -> srecaux S x @ a = srec S a <-> a < 0 -> srecaux S 0 @ a = srec S a) |
| 15 |
|
id |
x = y -> x = y |
| 16 |
15 |
lteq2d |
x = y -> (a < x <-> a < y) |
| 17 |
15 |
srecauxeq2d |
x = y -> srecaux S x = srecaux S y |
| 18 |
17 |
nseqd |
x = y -> srecaux S x == srecaux S y |
| 19 |
18 |
appeq1d |
x = y -> srecaux S x @ a = srecaux S y @ a |
| 20 |
19 |
eqeq1d |
x = y -> (srecaux S x @ a = srec S a <-> srecaux S y @ a = srec S a) |
| 21 |
16, 20 |
imeqd |
x = y -> (a < x -> srecaux S x @ a = srec S a <-> a < y -> srecaux S y @ a = srec S a) |
| 22 |
|
id |
x = suc y -> x = suc y |
| 23 |
22 |
lteq2d |
x = suc y -> (a < x <-> a < suc y) |
| 24 |
22 |
srecauxeq2d |
x = suc y -> srecaux S x = srecaux S (suc y) |
| 25 |
24 |
nseqd |
x = suc y -> srecaux S x == srecaux S (suc y) |
| 26 |
25 |
appeq1d |
x = suc y -> srecaux S x @ a = srecaux S (suc y) @ a |
| 27 |
26 |
eqeq1d |
x = suc y -> (srecaux S x @ a = srec S a <-> srecaux S (suc y) @ a = srec S a) |
| 28 |
23, 27 |
imeqd |
x = suc y -> (a < x -> srecaux S x @ a = srec S a <-> a < suc y -> srecaux S (suc y) @ a = srec S a) |
| 29 |
|
absurd |
~a < 0 -> a < 0 -> srecaux S 0 @ a = srec S a |
| 30 |
|
lt02 |
~a < 0 |
| 31 |
29, 30 |
ax_mp |
a < 0 -> srecaux S 0 @ a = srec S a |
| 32 |
|
leltsuc |
a <= y <-> a < suc y |
| 33 |
|
leloe |
a <= y <-> a < y \/ a = y |
| 34 |
|
appeq1 |
srecaux S (suc y) == write (srecaux S y) y (S @ srecaux S y) -> srecaux S (suc y) @ a = write (srecaux S y) y (S @ srecaux S y) @ a |
| 35 |
|
srecauxS |
srecaux S (suc y) == write (srecaux S y) y (S @ srecaux S y) |
| 36 |
34, 35 |
ax_mp |
srecaux S (suc y) @ a = write (srecaux S y) y (S @ srecaux S y) @ a |
| 37 |
|
writeNe |
a != y -> write (srecaux S y) y (S @ srecaux S y) @ a = srecaux S y @ a |
| 38 |
|
ltne |
a < y -> a != y |
| 39 |
37, 38 |
syl |
a < y -> write (srecaux S y) y (S @ srecaux S y) @ a = srecaux S y @ a |
| 40 |
36, 39 |
syl5eq |
a < y -> srecaux S (suc y) @ a = srecaux S y @ a |
| 41 |
40 |
eqeq1d |
a < y -> (srecaux S (suc y) @ a = srec S a <-> srecaux S y @ a = srec S a) |
| 42 |
41 |
bi2d |
a < y -> srecaux S y @ a = srec S a -> srecaux S (suc y) @ a = srec S a |
| 43 |
42 |
a2i |
(a < y -> srecaux S y @ a = srec S a) -> a < y -> srecaux S (suc y) @ a = srec S a |
| 44 |
|
eqcom |
a = y -> y = a |
| 45 |
44 |
suceqd |
a = y -> suc y = suc a |
| 46 |
45 |
srecauxeq2d |
a = y -> srecaux S (suc y) = srecaux S (suc a) |
| 47 |
46 |
appneq1d |
a = y -> srecaux S (suc y) @ a = srecaux S (suc a) @ a |
| 48 |
47 |
conv srec |
a = y -> srecaux S (suc y) @ a = srec S a |
| 49 |
48 |
a1i |
(a < y -> srecaux S y @ a = srec S a) -> a = y -> srecaux S (suc y) @ a = srec S a |
| 50 |
43, 49 |
eord |
(a < y -> srecaux S y @ a = srec S a) -> a < y \/ a = y -> srecaux S (suc y) @ a = srec S a |
| 51 |
33, 50 |
syl5bi |
(a < y -> srecaux S y @ a = srec S a) -> a <= y -> srecaux S (suc y) @ a = srec S a |
| 52 |
32, 51 |
syl5bir |
(a < y -> srecaux S y @ a = srec S a) -> a < suc y -> srecaux S (suc y) @ a = srec S a |
| 53 |
7, 14, 21, 28, 31, 52 |
ind |
a < n -> srecaux S n @ a = srec S a |