Theorem recS | index | src |

pub theorem recS (z: nat) (S: set) (n: nat):
  $ rec z S (suc n) = S @ rec z S n $;
StepHypRefExpression
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

Axiom use

axs_prop_calc (ax_1, ax_2, ax_3, ax_mp, itru), axs_pred_calc (ax_gen, ax_4, ax_5, ax_6, ax_7, ax_10, ax_11, ax_12), axs_set (elab, ax_8), axs_the (theid, the0), axs_peano (peano1, peano2, peano5, addeq, muleq, add0, addS, mul0, mulS)