Step | Hyp | Ref | Expression |
1 |
|
eqlower2 |
finite (write (srecaux S n) n (S @ srecaux S n)) ->
(srecaux S (suc n) == write (srecaux S n) n (S @ srecaux S n) <-> srecaux S (suc n) = lower (write (srecaux S n) n (S @ srecaux S n))) |
2 |
|
writefin |
finite (srecaux S n) -> finite (write (srecaux S n) n (S @ srecaux S n)) |
3 |
|
finns |
finite (srecaux S n) |
4 |
2, 3 |
ax_mp |
finite (write (srecaux S n) n (S @ srecaux S n)) |
5 |
1, 4 |
ax_mp |
srecaux S (suc n) == write (srecaux S n) n (S @ srecaux S n) <-> srecaux S (suc n) = lower (write (srecaux S n) n (S @ srecaux S n)) |
6 |
|
eqtr |
srecaux S (suc n) = (\\ a, \ b, lower (write b a (S @ b))) @ (n, recn 0 (\\ a, \ b, lower (write b a (S @ b))) n) ->
(\\ a, \ b, lower (write b a (S @ b))) @ (n, recn 0 (\\ a, \ b, lower (write b a (S @ b))) n) = lower (write (srecaux S n) n (S @ srecaux S n)) ->
srecaux S (suc n) = lower (write (srecaux S n) n (S @ srecaux S n)) |
7 |
|
recnS |
recn 0 (\\ a, \ b, lower (write b a (S @ b))) (suc n) = (\\ a, \ b, lower (write b a (S @ b))) @ (n, recn 0 (\\ a, \ b, lower (write b a (S @ b))) n) |
8 |
7 |
conv srecaux |
srecaux S (suc n) = (\\ a, \ b, lower (write b a (S @ b))) @ (n, recn 0 (\\ a, \ b, lower (write b a (S @ b))) n) |
9 |
6, 8 |
ax_mp |
(\\ a, \ b, lower (write b a (S @ b))) @ (n, recn 0 (\\ a, \ b, lower (write b a (S @ b))) n) = lower (write (srecaux S n) n (S @ srecaux S n)) ->
srecaux S (suc n) = lower (write (srecaux S n) n (S @ srecaux S n)) |
10 |
|
anr |
a = n /\ b = srecaux S n -> b = srecaux S n |
11 |
10 |
nseqd |
a = n /\ b = srecaux S n -> b == srecaux S n |
12 |
|
anl |
a = n /\ b = srecaux S n -> a = n |
13 |
10 |
appeq2d |
a = n /\ b = srecaux S n -> S @ b = S @ srecaux S n |
14 |
11, 12, 13 |
writeeqd |
a = n /\ b = srecaux S n -> write b a (S @ b) == write (srecaux S n) n (S @ srecaux S n) |
15 |
14 |
lowereqd |
a = n /\ b = srecaux S n -> lower (write b a (S @ b)) = lower (write (srecaux S n) n (S @ srecaux S n)) |
16 |
15 |
applamed |
a = n -> (\ b, lower (write b a (S @ b))) @ srecaux S n = lower (write (srecaux S n) n (S @ srecaux S n)) |
17 |
16 |
appslame |
(\\ a, \ b, lower (write b a (S @ b))) @ (n, srecaux S n) = lower (write (srecaux S n) n (S @ srecaux S n)) |
18 |
17 |
conv srecaux |
(\\ a, \ b, lower (write b a (S @ b))) @ (n, recn 0 (\\ a, \ b, lower (write b a (S @ b))) n) = lower (write (srecaux S n) n (S @ srecaux S n)) |
19 |
9, 18 |
ax_mp |
srecaux S (suc n) = lower (write (srecaux S n) n (S @ srecaux S n)) |
20 |
5, 19 |
mpbir |
srecaux S (suc n) == write (srecaux S n) n (S @ srecaux S n) |