Step | Hyp | Ref | Expression |
1 |
|
anl |
a2 = i /\ a3 = k -> a2 = i |
2 |
1 |
lteq1d |
a2 = i /\ a3 = k -> (a2 < n <-> i < n) |
3 |
|
anr |
a2 = i /\ a3 = k -> a3 = k |
4 |
3 |
lfnauxeq2d |
a2 = i /\ a3 = k -> lfnaux F a3 n = lfnaux F k n |
5 |
1, 4 |
ntheqd |
a2 = i /\ a3 = k -> nth a2 (lfnaux F a3 n) = nth i (lfnaux F k n) |
6 |
3, 1 |
addeqd |
a2 = i /\ a3 = k -> a3 + a2 = k + i |
7 |
6 |
appeq2d |
a2 = i /\ a3 = k -> F @ (a3 + a2) = F @ (k + i) |
8 |
7 |
suceqd |
a2 = i /\ a3 = k -> suc (F @ (a3 + a2)) = suc (F @ (k + i)) |
9 |
5, 8 |
eqeqd |
a2 = i /\ a3 = k -> (nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2)) <-> nth i (lfnaux F k n) = suc (F @ (k + i))) |
10 |
2, 9 |
imeqd |
a2 = i /\ a3 = k -> (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2)) <-> i < n -> nth i (lfnaux F k n) = suc (F @ (k + i))) |
11 |
10 |
bi1d |
a2 = i /\ a3 = k -> (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2))) -> i < n -> nth i (lfnaux F k n) = suc (F @ (k + i)) |
12 |
11 |
ealde |
a2 = i -> A. a3 (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2))) -> i < n -> nth i (lfnaux F k n) = suc (F @ (k + i)) |
13 |
12 |
ealie |
A. a2 A. a3 (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2))) -> i < n -> nth i (lfnaux F k n) = suc (F @ (k + i)) |
14 |
|
eqidd |
_1 = n -> a2 = a2 |
15 |
|
id |
_1 = n -> _1 = n |
16 |
14, 15 |
lteqd |
_1 = n -> (a2 < _1 <-> a2 < n) |
17 |
|
eqsidd |
_1 = n -> F == F |
18 |
|
eqidd |
_1 = n -> a3 = a3 |
19 |
17, 18, 15 |
lfnauxeqd |
_1 = n -> lfnaux F a3 _1 = lfnaux F a3 n |
20 |
14, 19 |
ntheqd |
_1 = n -> nth a2 (lfnaux F a3 _1) = nth a2 (lfnaux F a3 n) |
21 |
|
eqidd |
_1 = n -> suc (F @ (a3 + a2)) = suc (F @ (a3 + a2)) |
22 |
20, 21 |
eqeqd |
_1 = n -> (nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2))) |
23 |
16, 22 |
imeqd |
_1 = n -> (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2))) |
24 |
23 |
aleqd |
_1 = n -> (A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a3 (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2)))) |
25 |
24 |
aleqd |
_1 = n -> (A. a2 A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a2 A. a3 (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2)))) |
26 |
|
eqidd |
_1 = 0 -> a2 = a2 |
27 |
|
id |
_1 = 0 -> _1 = 0 |
28 |
26, 27 |
lteqd |
_1 = 0 -> (a2 < _1 <-> a2 < 0) |
29 |
|
eqsidd |
_1 = 0 -> F == F |
30 |
|
eqidd |
_1 = 0 -> a3 = a3 |
31 |
29, 30, 27 |
lfnauxeqd |
_1 = 0 -> lfnaux F a3 _1 = lfnaux F a3 0 |
32 |
26, 31 |
ntheqd |
_1 = 0 -> nth a2 (lfnaux F a3 _1) = nth a2 (lfnaux F a3 0) |
33 |
|
eqidd |
_1 = 0 -> suc (F @ (a3 + a2)) = suc (F @ (a3 + a2)) |
34 |
32, 33 |
eqeqd |
_1 = 0 -> (nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2))) |
35 |
28, 34 |
imeqd |
_1 = 0 -> (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2))) |
36 |
35 |
aleqd |
_1 = 0 -> (A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a3 (a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2)))) |
37 |
36 |
aleqd |
_1 = 0 -> (A. a2 A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a2 A. a3 (a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2)))) |
38 |
|
eqidd |
_1 = a1 -> a2 = a2 |
39 |
|
id |
_1 = a1 -> _1 = a1 |
40 |
38, 39 |
lteqd |
_1 = a1 -> (a2 < _1 <-> a2 < a1) |
41 |
|
eqsidd |
_1 = a1 -> F == F |
42 |
|
eqidd |
_1 = a1 -> a3 = a3 |
43 |
41, 42, 39 |
lfnauxeqd |
_1 = a1 -> lfnaux F a3 _1 = lfnaux F a3 a1 |
44 |
38, 43 |
ntheqd |
_1 = a1 -> nth a2 (lfnaux F a3 _1) = nth a2 (lfnaux F a3 a1) |
45 |
|
eqidd |
_1 = a1 -> suc (F @ (a3 + a2)) = suc (F @ (a3 + a2)) |
46 |
44, 45 |
eqeqd |
_1 = a1 -> (nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2))) |
47 |
40, 46 |
imeqd |
_1 = a1 -> (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2))) |
48 |
47 |
aleqd |
_1 = a1 -> (A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a3 (a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2)))) |
49 |
48 |
aleqd |
_1 = a1 -> (A. a2 A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a2 A. a3 (a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2)))) |
50 |
|
eqidd |
_1 = suc a1 -> a2 = a2 |
51 |
|
id |
_1 = suc a1 -> _1 = suc a1 |
52 |
50, 51 |
lteqd |
_1 = suc a1 -> (a2 < _1 <-> a2 < suc a1) |
53 |
|
eqsidd |
_1 = suc a1 -> F == F |
54 |
|
eqidd |
_1 = suc a1 -> a3 = a3 |
55 |
53, 54, 51 |
lfnauxeqd |
_1 = suc a1 -> lfnaux F a3 _1 = lfnaux F a3 (suc a1) |
56 |
50, 55 |
ntheqd |
_1 = suc a1 -> nth a2 (lfnaux F a3 _1) = nth a2 (lfnaux F a3 (suc a1)) |
57 |
|
eqidd |
_1 = suc a1 -> suc (F @ (a3 + a2)) = suc (F @ (a3 + a2)) |
58 |
56, 57 |
eqeqd |
_1 = suc a1 -> (nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2))) |
59 |
52, 58 |
imeqd |
_1 = suc a1 -> (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2)) <-> a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2))) |
60 |
59 |
aleqd |
_1 = suc a1 -> (A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a3 (a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2)))) |
61 |
60 |
aleqd |
_1 = suc a1 ->
(A. a2 A. a3 (a2 < _1 -> nth a2 (lfnaux F a3 _1) = suc (F @ (a3 + a2))) <-> A. a2 A. a3 (a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2)))) |
62 |
|
absurd |
~a2 < 0 -> a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2)) |
63 |
|
lt02 |
~a2 < 0 |
64 |
62, 63 |
ax_mp |
a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2)) |
65 |
64 |
ax_gen |
A. a3 (a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2))) |
66 |
65 |
ax_gen |
A. a2 A. a3 (a2 < 0 -> nth a2 (lfnaux F a3 0) = suc (F @ (a3 + a2))) |
67 |
|
anl |
a2 = a4 /\ a3 = a5 -> a2 = a4 |
68 |
67 |
lteq1d |
a2 = a4 /\ a3 = a5 -> (a2 < a1 <-> a4 < a1) |
69 |
|
anr |
a2 = a4 /\ a3 = a5 -> a3 = a5 |
70 |
69 |
lfnauxeq2d |
a2 = a4 /\ a3 = a5 -> lfnaux F a3 a1 = lfnaux F a5 a1 |
71 |
67, 70 |
ntheqd |
a2 = a4 /\ a3 = a5 -> nth a2 (lfnaux F a3 a1) = nth a4 (lfnaux F a5 a1) |
72 |
69, 67 |
addeqd |
a2 = a4 /\ a3 = a5 -> a3 + a2 = a5 + a4 |
73 |
72 |
appeq2d |
a2 = a4 /\ a3 = a5 -> F @ (a3 + a2) = F @ (a5 + a4) |
74 |
73 |
suceqd |
a2 = a4 /\ a3 = a5 -> suc (F @ (a3 + a2)) = suc (F @ (a5 + a4)) |
75 |
71, 74 |
eqeqd |
a2 = a4 /\ a3 = a5 -> (nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2)) <-> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) |
76 |
68, 75 |
imeqd |
a2 = a4 /\ a3 = a5 -> (a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2)) <-> a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) |
77 |
76 |
cbvald |
a2 = a4 -> (A. a3 (a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2))) <-> A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4)))) |
78 |
77 |
cbval |
A. a2 A. a3 (a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2))) <-> A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) |
79 |
|
ntheq2 |
lfnaux F a3 (suc a1) = F @ a3 : lfnaux F (suc a3) a1 -> nth a2 (lfnaux F a3 (suc a1)) = nth a2 (F @ a3 : lfnaux F (suc a3) a1) |
80 |
|
lfnauxS |
lfnaux F a3 (suc a1) = F @ a3 : lfnaux F (suc a3) a1 |
81 |
79, 80 |
ax_mp |
nth a2 (lfnaux F a3 (suc a1)) = nth a2 (F @ a3 : lfnaux F (suc a3) a1) |
82 |
|
nthZ |
nth 0 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ a3) |
83 |
|
anr |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> a2 = 0 |
84 |
83 |
ntheq1d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 ->
nth a2 (F @ a3 : lfnaux F (suc a3) a1) = nth 0 (F @ a3 : lfnaux F (suc a3) a1) |
85 |
82, 84 |
syl6eq |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ a3) |
86 |
|
add02 |
a3 + 0 = a3 |
87 |
83 |
addeq2d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> a3 + a2 = a3 + 0 |
88 |
86, 87 |
syl6eq |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> a3 + a2 = a3 |
89 |
88 |
appeq2d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> F @ (a3 + a2) = F @ a3 |
90 |
89 |
suceqd |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> suc (F @ (a3 + a2)) = suc (F @ a3) |
91 |
85, 90 |
eqtr4d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = 0 -> nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
92 |
91 |
exp |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 -> a2 = 0 -> nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
93 |
|
exsuc |
a2 != 0 <-> E. a4 a2 = suc a4 |
94 |
93 |
conv ne |
~a2 = 0 <-> E. a4 a2 = suc a4 |
95 |
|
nfal1 |
F/ a4 A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) |
96 |
|
nfv |
F/ a4 a2 < suc a1 |
97 |
95, 96 |
nfan |
F/ a4 A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 |
98 |
|
nfv |
F/ a4 nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
99 |
|
anr |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> a2 = suc a4 |
100 |
99 |
ntheq1d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 ->
nth a2 (F @ a3 : lfnaux F (suc a3) a1) = nth (suc a4) (F @ a3 : lfnaux F (suc a3) a1) |
101 |
|
nthS |
nth (suc a4) (F @ a3 : lfnaux F (suc a3) a1) = nth a4 (lfnaux F (suc a3) a1) |
102 |
|
ltsuc |
a4 < a1 <-> suc a4 < suc a1 |
103 |
99 |
lteq1d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> (a2 < suc a1 <-> suc a4 < suc a1) |
104 |
|
anlr |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> a2 < suc a1 |
105 |
103, 104 |
mpbid |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> suc a4 < suc a1 |
106 |
102, 105 |
sylibr |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> a4 < a1 |
107 |
|
eal |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) -> A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) |
108 |
107 |
anwll |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 ->
A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) |
109 |
|
lfnauxeq2 |
a5 = suc a3 -> lfnaux F a5 a1 = lfnaux F (suc a3) a1 |
110 |
109 |
ntheq2d |
a5 = suc a3 -> nth a4 (lfnaux F a5 a1) = nth a4 (lfnaux F (suc a3) a1) |
111 |
|
addeq1 |
a5 = suc a3 -> a5 + a4 = suc a3 + a4 |
112 |
111 |
appeq2d |
a5 = suc a3 -> F @ (a5 + a4) = F @ (suc a3 + a4) |
113 |
112 |
suceqd |
a5 = suc a3 -> suc (F @ (a5 + a4)) = suc (F @ (suc a3 + a4)) |
114 |
110, 113 |
eqeqd |
a5 = suc a3 -> (nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4)) <-> nth a4 (lfnaux F (suc a3) a1) = suc (F @ (suc a3 + a4))) |
115 |
114 |
imeq2d |
a5 = suc a3 -> (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4)) <-> a4 < a1 -> nth a4 (lfnaux F (suc a3) a1) = suc (F @ (suc a3 + a4))) |
116 |
115 |
eale |
A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) -> a4 < a1 -> nth a4 (lfnaux F (suc a3) a1) = suc (F @ (suc a3 + a4)) |
117 |
108, 116 |
rsyl |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 ->
a4 < a1 ->
nth a4 (lfnaux F (suc a3) a1) = suc (F @ (suc a3 + a4)) |
118 |
106, 117 |
mpd |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> nth a4 (lfnaux F (suc a3) a1) = suc (F @ (suc a3 + a4)) |
119 |
|
addSass |
suc a3 + a4 = a3 + suc a4 |
120 |
99 |
addeq2d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> a3 + a2 = a3 + suc a4 |
121 |
119, 120 |
syl6eqr |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> a3 + a2 = suc a3 + a4 |
122 |
121 |
appeq2d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> F @ (a3 + a2) = F @ (suc a3 + a4) |
123 |
122 |
suceqd |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> suc (F @ (a3 + a2)) = suc (F @ (suc a3 + a4)) |
124 |
118, 123 |
eqtr4d |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 -> nth a4 (lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
125 |
101, 124 |
syl5eq |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 ->
nth (suc a4) (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
126 |
100, 125 |
eqtrd |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 /\ a2 = suc a4 ->
nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
127 |
126 |
exp |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 ->
a2 = suc a4 ->
nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
128 |
97, 98, 127 |
eexdh |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 ->
E. a4 a2 = suc a4 ->
nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
129 |
94, 128 |
syl5bi |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 -> ~a2 = 0 -> nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
130 |
92, 129 |
casesd |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 -> nth a2 (F @ a3 : lfnaux F (suc a3) a1) = suc (F @ (a3 + a2)) |
131 |
81, 130 |
syl5eq |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) /\ a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2)) |
132 |
131 |
ialda |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) -> A. a3 (a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2))) |
133 |
132 |
iald |
A. a4 A. a5 (a4 < a1 -> nth a4 (lfnaux F a5 a1) = suc (F @ (a5 + a4))) -> A. a2 A. a3 (a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2))) |
134 |
78, 133 |
sylbi |
A. a2 A. a3 (a2 < a1 -> nth a2 (lfnaux F a3 a1) = suc (F @ (a3 + a2))) -> A. a2 A. a3 (a2 < suc a1 -> nth a2 (lfnaux F a3 (suc a1)) = suc (F @ (a3 + a2))) |
135 |
25, 37, 49, 61, 66, 134 |
ind |
A. a2 A. a3 (a2 < n -> nth a2 (lfnaux F a3 n) = suc (F @ (a3 + a2))) |
136 |
13, 135 |
ax_mp |
i < n -> nth i (lfnaux F k n) = suc (F @ (k + i)) |