| Step | Hyp | Ref | Expression |
| 1 |
|
eqsidd |
_1 = n -> A == A |
| 2 |
|
id |
_1 = n -> _1 = n |
| 3 |
1, 2 |
Arrayeqd |
_1 = n -> Array A _1 == Array A n |
| 4 |
3 |
fineqd |
_1 = n -> (finite (Array A _1) <-> finite (Array A n)) |
| 5 |
|
eqsidd |
_1 = 0 -> A == A |
| 6 |
|
id |
_1 = 0 -> _1 = 0 |
| 7 |
5, 6 |
Arrayeqd |
_1 = 0 -> Array A _1 == Array A 0 |
| 8 |
7 |
fineqd |
_1 = 0 -> (finite (Array A _1) <-> finite (Array A 0)) |
| 9 |
|
eqsidd |
_1 = a1 -> A == A |
| 10 |
|
id |
_1 = a1 -> _1 = a1 |
| 11 |
9, 10 |
Arrayeqd |
_1 = a1 -> Array A _1 == Array A a1 |
| 12 |
11 |
fineqd |
_1 = a1 -> (finite (Array A _1) <-> finite (Array A a1)) |
| 13 |
|
eqsidd |
_1 = suc a1 -> A == A |
| 14 |
|
id |
_1 = suc a1 -> _1 = suc a1 |
| 15 |
13, 14 |
Arrayeqd |
_1 = suc a1 -> Array A _1 == Array A (suc a1) |
| 16 |
15 |
fineqd |
_1 = suc a1 -> (finite (Array A _1) <-> finite (Array A (suc a1))) |
| 17 |
|
fineq |
Array A 0 == sn 0 -> (finite (Array A 0) <-> finite (sn 0)) |
| 18 |
|
bitr4 |
(a2 e. Array A 0 <-> a2 = 0) -> (a2 e. sn 0 <-> a2 = 0) -> (a2 e. Array A 0 <-> a2 e. sn 0) |
| 19 |
|
elArray02 |
a2 e. Array A 0 <-> a2 = 0 |
| 20 |
18, 19 |
ax_mp |
(a2 e. sn 0 <-> a2 = 0) -> (a2 e. Array A 0 <-> a2 e. sn 0) |
| 21 |
|
elsn |
a2 e. sn 0 <-> a2 = 0 |
| 22 |
20, 21 |
ax_mp |
a2 e. Array A 0 <-> a2 e. sn 0 |
| 23 |
22 |
eqri |
Array A 0 == sn 0 |
| 24 |
17, 23 |
ax_mp |
finite (Array A 0) <-> finite (sn 0) |
| 25 |
|
finns |
finite (sn 0) |
| 26 |
24, 25 |
mpbir |
finite (Array A 0) |
| 27 |
26 |
a1i |
finite A -> finite (Array A 0) |
| 28 |
|
xpfin |
finite A -> finite (Array A a1) -> finite (Xp A (Array A a1)) |
| 29 |
28 |
imp |
finite A /\ finite (Array A a1) -> finite (Xp A (Array A a1)) |
| 30 |
|
lefin |
finite {a3 | a3 <= lower (Xp A (Array A a1))} |
| 31 |
|
finss |
Array A (suc a1) C_ {a3 | a3 <= lower (Xp A (Array A a1))} -> finite {a3 | a3 <= lower (Xp A (Array A a1))} -> finite (Array A (suc a1)) |
| 32 |
30, 31 |
mpi |
Array A (suc a1) C_ {a3 | a3 <= lower (Xp A (Array A a1))} -> finite (Array A (suc a1)) |
| 33 |
|
ssab2 |
A. a3 (a3 e. Array A (suc a1) -> a3 <= lower (Xp A (Array A a1))) <-> Array A (suc a1) C_ {a3 | a3 <= lower (Xp A (Array A a1))} |
| 34 |
|
elArrayS2 |
a3 e. Array A (suc a1) <-> E. a4 E. a5 (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) |
| 35 |
|
anrr |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a3 = a4 : a5 |
| 36 |
35 |
leeq1d |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> (a3 <= lower (Xp A (Array A a1)) <-> a4 : a5 <= lower (Xp A (Array A a1))) |
| 37 |
|
ellt |
a4, a5 e. lower (Xp A (Array A a1)) -> a4, a5 < lower (Xp A (Array A a1)) |
| 38 |
37 |
conv cons, lt |
a4, a5 e. lower (Xp A (Array A a1)) -> a4 : a5 <= lower (Xp A (Array A a1)) |
| 39 |
|
ellower |
finite (Xp A (Array A a1)) -> (a4, a5 e. lower (Xp A (Array A a1)) <-> a4, a5 e. Xp A (Array A a1)) |
| 40 |
39 |
anwl |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> (a4, a5 e. lower (Xp A (Array A a1)) <-> a4, a5 e. Xp A (Array A a1)) |
| 41 |
|
prelxp |
a4, a5 e. Xp A (Array A a1) <-> a4 e. A /\ a5 e. Array A a1 |
| 42 |
|
anrl |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a4 e. A /\ a5 e. Array A a1 |
| 43 |
41, 42 |
sylibr |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a4, a5 e. Xp A (Array A a1) |
| 44 |
40, 43 |
mpbird |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a4, a5 e. lower (Xp A (Array A a1)) |
| 45 |
38, 44 |
syl |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a4 : a5 <= lower (Xp A (Array A a1)) |
| 46 |
36, 45 |
mpbird |
finite (Xp A (Array A a1)) /\ (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a3 <= lower (Xp A (Array A a1)) |
| 47 |
46 |
eexda |
finite (Xp A (Array A a1)) -> E. a5 (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a3 <= lower (Xp A (Array A a1)) |
| 48 |
47 |
eexd |
finite (Xp A (Array A a1)) -> E. a4 E. a5 (a4 e. A /\ a5 e. Array A a1 /\ a3 = a4 : a5) -> a3 <= lower (Xp A (Array A a1)) |
| 49 |
34, 48 |
syl5bi |
finite (Xp A (Array A a1)) -> a3 e. Array A (suc a1) -> a3 <= lower (Xp A (Array A a1)) |
| 50 |
49 |
iald |
finite (Xp A (Array A a1)) -> A. a3 (a3 e. Array A (suc a1) -> a3 <= lower (Xp A (Array A a1))) |
| 51 |
33, 50 |
sylib |
finite (Xp A (Array A a1)) -> Array A (suc a1) C_ {a3 | a3 <= lower (Xp A (Array A a1))} |
| 52 |
32, 51 |
syl |
finite (Xp A (Array A a1)) -> finite (Array A (suc a1)) |
| 53 |
29, 52 |
rsyl |
finite A /\ finite (Array A a1) -> finite (Array A (suc a1)) |
| 54 |
4, 8, 12, 16, 27, 53 |
indd |
finite A -> finite (Array A n) |