Step | Hyp | Ref | Expression |
1 |
|
eqtr |
ocase z S @ suc n = recn z (\ i, S @ fst i) (suc n) -> recn z (\ i, S @ fst i) (suc n) = S @ n -> ocase z S @ suc n = S @ n |
2 |
|
ocaseval |
ocase z S @ suc n = recn z (\ i, S @ fst i) (suc n) |
3 |
1, 2 |
ax_mp |
recn z (\ i, S @ fst i) (suc n) = S @ n -> ocase z S @ suc n = S @ n |
4 |
|
eqtr |
recn z (\ i, S @ fst i) (suc n) = (\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) ->
(\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) = S @ n ->
recn z (\ i, S @ fst i) (suc n) = S @ n |
5 |
|
recnS |
recn z (\ i, S @ fst i) (suc n) = (\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) |
6 |
4, 5 |
ax_mp |
(\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) = S @ n -> recn z (\ i, S @ fst i) (suc n) = S @ n |
7 |
|
eqtr3 |
(\ i, S @ fst i) @ (n, ocase z S @ n) = (\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) ->
(\ i, S @ fst i) @ (n, ocase z S @ n) = S @ n ->
(\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) = S @ n |
8 |
|
appeq2 |
n, ocase z S @ n = n, recn z (\ i, S @ fst i) n -> (\ i, S @ fst i) @ (n, ocase z S @ n) = (\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) |
9 |
|
preq2 |
ocase z S @ n = recn z (\ i, S @ fst i) n -> n, ocase z S @ n = n, recn z (\ i, S @ fst i) n |
10 |
|
ocaseval |
ocase z S @ n = recn z (\ i, S @ fst i) n |
11 |
9, 10 |
ax_mp |
n, ocase z S @ n = n, recn z (\ i, S @ fst i) n |
12 |
8, 11 |
ax_mp |
(\ i, S @ fst i) @ (n, ocase z S @ n) = (\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) |
13 |
7, 12 |
ax_mp |
(\ i, S @ fst i) @ (n, ocase z S @ n) = S @ n -> (\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) = S @ n |
14 |
|
fstpr |
fst (n, ocase z S @ n) = n |
15 |
|
fsteq |
i = n, ocase z S @ n -> fst i = fst (n, ocase z S @ n) |
16 |
14, 15 |
syl6eq |
i = n, ocase z S @ n -> fst i = n |
17 |
16 |
appeq2d |
i = n, ocase z S @ n -> S @ fst i = S @ n |
18 |
17 |
applame |
(\ i, S @ fst i) @ (n, ocase z S @ n) = S @ n |
19 |
13, 18 |
ax_mp |
(\ i, S @ fst i) @ (n, recn z (\ i, S @ fst i) n) = S @ n |
20 |
6, 19 |
ax_mp |
recn z (\ i, S @ fst i) (suc n) = S @ n |
21 |
3, 20 |
ax_mp |
ocase z S @ suc n = S @ n |