| Step | Hyp | Ref | Expression |
| 1 |
|
suceq |
m = n -> suc m = suc n |
| 2 |
1 |
receq3d |
m = n -> rec z S (suc m) = rec z S (suc n) |
| 3 |
|
receq3 |
m = n -> rec z S m = rec z S n |
| 4 |
3 |
appeq2d |
m = n -> S @ rec z S m = S @ rec z S n |
| 5 |
2, 4 |
eqeqd |
m = n -> (rec z S (suc m) = S @ rec z S m <-> rec z S (suc n) = S @ rec z S n) |
| 6 |
|
suceq |
m = k -> suc m = suc k |
| 7 |
6 |
receq3d |
m = k -> rec z S (suc m) = rec z S (suc k) |
| 8 |
|
receq3 |
m = k -> rec z S m = rec z S k |
| 9 |
8 |
appeq2d |
m = k -> S @ rec z S m = S @ rec z S k |
| 10 |
7, 9 |
eqeqd |
m = k -> (rec z S (suc m) = S @ rec z S m <-> rec z S (suc k) = S @ rec z S k) |
| 11 |
|
psetfn |
finite {x | x <= suc k} -> E. a A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) |
| 12 |
|
lefin |
finite {x | x <= suc k} |
| 13 |
11, 12 |
ax_mp |
E. a A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) |
| 14 |
|
rec0 |
rec z S 0 = z |
| 15 |
|
le01 |
0 <= suc k |
| 16 |
|
leeq1 |
x = 0 -> (x <= suc k <-> 0 <= suc k) |
| 17 |
|
appeq2 |
x = 0 -> pset a @ x = pset a @ 0 |
| 18 |
|
ifneg |
~x = suc k -> if (x = suc k) (S @ rec z S k) (rec z S x) = rec z S x |
| 19 |
|
con2 |
(x = suc k -> ~x = 0) -> x = 0 -> ~x = suc k |
| 20 |
|
sucne0 |
x = suc k -> x != 0 |
| 21 |
20 |
conv ne |
x = suc k -> ~x = 0 |
| 22 |
19, 21 |
ax_mp |
x = 0 -> ~x = suc k |
| 23 |
18, 22 |
syl |
x = 0 -> if (x = suc k) (S @ rec z S k) (rec z S x) = rec z S x |
| 24 |
|
receq3 |
x = 0 -> rec z S x = rec z S 0 |
| 25 |
23, 24 |
eqtrd |
x = 0 -> if (x = suc k) (S @ rec z S k) (rec z S x) = rec z S 0 |
| 26 |
17, 25 |
eqeqd |
x = 0 -> (pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ 0 = rec z S 0) |
| 27 |
16, 26 |
imeqd |
x = 0 -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> 0 <= suc k -> pset a @ 0 = rec z S 0) |
| 28 |
27 |
eale |
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> 0 <= suc k -> pset a @ 0 = rec z S 0 |
| 29 |
15, 28 |
mpi |
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> pset a @ 0 = rec z S 0 |
| 30 |
14, 29 |
syl6eq |
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> pset a @ 0 = z |
| 31 |
30 |
anwr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> pset a @ 0 = z |
| 32 |
|
leid |
suc k <= suc k |
| 33 |
|
leeq1 |
x = suc k -> (x <= suc k <-> suc k <= suc k) |
| 34 |
|
appeq2 |
x = suc k -> pset a @ x = pset a @ suc k |
| 35 |
|
ifpos |
x = suc k -> if (x = suc k) (S @ rec z S k) (rec z S x) = S @ rec z S k |
| 36 |
34, 35 |
eqeqd |
x = suc k -> (pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ suc k = S @ rec z S k) |
| 37 |
33, 36 |
imeqd |
x = suc k -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> suc k <= suc k -> pset a @ suc k = S @ rec z S k) |
| 38 |
37 |
eale |
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> suc k <= suc k -> pset a @ suc k = S @ rec z S k |
| 39 |
32, 38 |
mpi |
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> pset a @ suc k = S @ rec z S k |
| 40 |
39 |
anwr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
pset a @ suc k = S @ rec z S k |
| 41 |
|
leltsuc |
y <= k <-> y < suc k |
| 42 |
|
lesuc |
y <= k <-> suc y <= suc k |
| 43 |
|
anr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k -> y <= k |
| 44 |
42, 43 |
sylib |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k -> suc y <= suc k |
| 45 |
|
anlr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) |
| 46 |
|
leeq1 |
x = suc y -> (x <= suc k <-> suc y <= suc k) |
| 47 |
|
appeq2 |
x = suc y -> pset a @ x = pset a @ suc y |
| 48 |
|
peano2 |
suc y = suc k <-> y = k |
| 49 |
|
eqeq1 |
x = suc y -> (x = suc k <-> suc y = suc k) |
| 50 |
48, 49 |
syl6bb |
x = suc y -> (x = suc k <-> y = k) |
| 51 |
|
eqidd |
x = suc y -> S @ rec z S k = S @ rec z S k |
| 52 |
|
receq3 |
x = suc y -> rec z S x = rec z S (suc y) |
| 53 |
50, 51, 52 |
ifeqd |
x = suc y -> if (x = suc k) (S @ rec z S k) (rec z S x) = if (y = k) (S @ rec z S k) (rec z S (suc y)) |
| 54 |
47, 53 |
eqeqd |
x = suc y -> (pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ suc y = if (y = k) (S @ rec z S k) (rec z S (suc y))) |
| 55 |
46, 54 |
imeqd |
x = suc y ->
(x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> suc y <= suc k -> pset a @ suc y = if (y = k) (S @ rec z S k) (rec z S (suc y))) |
| 56 |
55 |
eale |
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> suc y <= suc k -> pset a @ suc y = if (y = k) (S @ rec z S k) (rec z S (suc y)) |
| 57 |
45, 56 |
rsyl |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
suc y <= suc k ->
pset a @ suc y = if (y = k) (S @ rec z S k) (rec z S (suc y)) |
| 58 |
44, 57 |
mpd |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
pset a @ suc y = if (y = k) (S @ rec z S k) (rec z S (suc y)) |
| 59 |
|
ifpos |
y = k -> if (y = k) (S @ rec z S k) (rec z S (suc y)) = S @ rec z S k |
| 60 |
59 |
anwr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ y = k ->
if (y = k) (S @ rec z S k) (rec z S (suc y)) = S @ rec z S k |
| 61 |
|
eqcom |
pset a @ y = rec z S y -> rec z S y = pset a @ y |
| 62 |
|
biim1 |
x <= suc k -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) |
| 63 |
|
leeq1 |
x = y -> (x <= suc k <-> y <= suc k) |
| 64 |
63 |
anwr |
y <= k /\ x = y -> (x <= suc k <-> y <= suc k) |
| 65 |
|
anl |
y <= k /\ x = y -> y <= k |
| 66 |
|
lesucid |
k <= suc k |
| 67 |
66 |
a1i |
y <= k /\ x = y -> k <= suc k |
| 68 |
65, 67 |
letrd |
y <= k /\ x = y -> y <= suc k |
| 69 |
64, 68 |
mpbird |
y <= k /\ x = y -> x <= suc k |
| 70 |
62, 69 |
syl |
y <= k /\ x = y -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) |
| 71 |
|
appeq2 |
x = y -> pset a @ x = pset a @ y |
| 72 |
71 |
anwr |
y <= k /\ x = y -> pset a @ x = pset a @ y |
| 73 |
|
ltne |
x < suc k -> x != suc k |
| 74 |
73 |
conv ne |
x < suc k -> ~x = suc k |
| 75 |
|
leltsuc |
x <= k <-> x < suc k |
| 76 |
|
leeq1 |
x = y -> (x <= k <-> y <= k) |
| 77 |
|
id |
y <= k -> y <= k |
| 78 |
76, 77 |
syl5ibrcom |
y <= k -> x = y -> x <= k |
| 79 |
78 |
imp |
y <= k /\ x = y -> x <= k |
| 80 |
75, 79 |
sylib |
y <= k /\ x = y -> x < suc k |
| 81 |
74, 80 |
syl |
y <= k /\ x = y -> ~x = suc k |
| 82 |
18, 81 |
syl |
y <= k /\ x = y -> if (x = suc k) (S @ rec z S k) (rec z S x) = rec z S x |
| 83 |
|
receq3 |
x = y -> rec z S x = rec z S y |
| 84 |
83 |
anwr |
y <= k /\ x = y -> rec z S x = rec z S y |
| 85 |
82, 84 |
eqtrd |
y <= k /\ x = y -> if (x = suc k) (S @ rec z S k) (rec z S x) = rec z S y |
| 86 |
72, 85 |
eqeqd |
y <= k /\ x = y -> (pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ y = rec z S y) |
| 87 |
70, 86 |
bitrd |
y <= k /\ x = y -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x) <-> pset a @ y = rec z S y) |
| 88 |
87 |
bi1d |
y <= k /\ x = y -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> pset a @ y = rec z S y |
| 89 |
61, 88 |
syl6 |
y <= k /\ x = y -> (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> rec z S y = pset a @ y |
| 90 |
89 |
ealde |
y <= k -> A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) -> rec z S y = pset a @ y |
| 91 |
90 |
anwr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
rec z S y = pset a @ y |
| 92 |
45, 91 |
mpd |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
rec z S y = pset a @ y |
| 93 |
92 |
anwl |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ y = k ->
rec z S y = pset a @ y |
| 94 |
|
receq3 |
y = k -> rec z S y = rec z S k |
| 95 |
94 |
anwr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ y = k ->
rec z S y = rec z S k |
| 96 |
93, 95 |
eqtr3d |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ y = k ->
pset a @ y = rec z S k |
| 97 |
96 |
appeq2d |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ y = k ->
S @ (pset a @ y) = S @ rec z S k |
| 98 |
60, 97 |
eqtr4d |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ y = k ->
if (y = k) (S @ rec z S k) (rec z S (suc y)) = S @ (pset a @ y) |
| 99 |
|
ifneg |
~y = k -> if (y = k) (S @ rec z S k) (rec z S (suc y)) = rec z S (suc y) |
| 100 |
99 |
anwr |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
if (y = k) (S @ rec z S k) (rec z S (suc y)) = rec z S (suc y) |
| 101 |
|
orcom |
y < k \/ y = k -> y = k \/ y < k |
| 102 |
101 |
conv or |
y < k \/ y = k -> ~y = k -> y < k |
| 103 |
|
leloe |
y <= k <-> y < k \/ y = k |
| 104 |
103, 43 |
sylib |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k -> y < k \/ y = k |
| 105 |
102, 104 |
syl |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k -> ~y = k -> y < k |
| 106 |
105 |
imp |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k -> y < k |
| 107 |
|
an3l |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
A. m (m < k -> rec z S (suc m) = S @ rec z S m) |
| 108 |
|
lteq1 |
m = y -> (m < k <-> y < k) |
| 109 |
|
suceq |
m = y -> suc m = suc y |
| 110 |
109 |
receq3d |
m = y -> rec z S (suc m) = rec z S (suc y) |
| 111 |
|
receq3 |
m = y -> rec z S m = rec z S y |
| 112 |
111 |
appeq2d |
m = y -> S @ rec z S m = S @ rec z S y |
| 113 |
110, 112 |
eqeqd |
m = y -> (rec z S (suc m) = S @ rec z S m <-> rec z S (suc y) = S @ rec z S y) |
| 114 |
108, 113 |
imeqd |
m = y -> (m < k -> rec z S (suc m) = S @ rec z S m <-> y < k -> rec z S (suc y) = S @ rec z S y) |
| 115 |
114 |
eale |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) -> y < k -> rec z S (suc y) = S @ rec z S y |
| 116 |
107, 115 |
rsyl |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
y < k ->
rec z S (suc y) = S @ rec z S y |
| 117 |
106, 116 |
mpd |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
rec z S (suc y) = S @ rec z S y |
| 118 |
92 |
anwl |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
rec z S y = pset a @ y |
| 119 |
118 |
appeq2d |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
S @ rec z S y = S @ (pset a @ y) |
| 120 |
117, 119 |
eqtrd |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
rec z S (suc y) = S @ (pset a @ y) |
| 121 |
100, 120 |
eqtrd |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k /\ ~y = k ->
if (y = k) (S @ rec z S k) (rec z S (suc y)) = S @ (pset a @ y) |
| 122 |
98, 121 |
casesda |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
if (y = k) (S @ rec z S k) (rec z S (suc y)) = S @ (pset a @ y) |
| 123 |
58, 122 |
eqtrd |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) /\ y <= k ->
pset a @ suc y = S @ (pset a @ y) |
| 124 |
123 |
exp |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
y <= k ->
pset a @ suc y = S @ (pset a @ y) |
| 125 |
41, 124 |
syl5bir |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
y < suc k ->
pset a @ suc y = S @ (pset a @ y) |
| 126 |
125 |
iald |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
A. y (y < suc k -> pset a @ suc y = S @ (pset a @ y)) |
| 127 |
31, 40, 126 |
reclem |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) /\ A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
rec z S (suc k) = S @ rec z S k |
| 128 |
127 |
eexda |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) ->
E. a A. x (x <= suc k -> pset a @ x = if (x = suc k) (S @ rec z S k) (rec z S x)) ->
rec z S (suc k) = S @ rec z S k |
| 129 |
13, 128 |
mpi |
A. m (m < k -> rec z S (suc m) = S @ rec z S m) -> rec z S (suc k) = S @ rec z S k |
| 130 |
129 |
anwr |
T. /\ A. m (m < k -> rec z S (suc m) = S @ rec z S m) -> rec z S (suc k) = S @ rec z S k |
| 131 |
5, 10, 130 |
indstr |
T. -> rec z S (suc n) = S @ rec z S n |
| 132 |
131 |
trud |
rec z S (suc n) = S @ rec z S n |