Step |
Hyp |
Ref |
Expression |
1 |
|
peano2nn0 |
⊢ ( 𝑁 ∈ ℕ0 → ( 𝑁 + 1 ) ∈ ℕ0 ) |
2 |
|
ackvalsuc1 |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ ( 𝑁 + 1 ) ∈ ℕ0 ) → ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁 + 1 ) + 1 ) ) ‘ 1 ) ) |
3 |
1 2
|
sylan2 |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁 + 1 ) + 1 ) ) ‘ 1 ) ) |
4 |
|
fvexd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( Ack ‘ 𝑀 ) ∈ V ) |
5 |
1
|
adantl |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( 𝑁 + 1 ) ∈ ℕ0 ) |
6 |
|
eqidd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) |
7 |
|
itcovalsucov |
⊢ ( ( ( Ack ‘ 𝑀 ) ∈ V ∧ ( 𝑁 + 1 ) ∈ ℕ0 ∧ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁 + 1 ) + 1 ) ) = ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) ) |
8 |
4 5 6 7
|
syl3anc |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁 + 1 ) + 1 ) ) = ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) ) |
9 |
8
|
fveq1d |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁 + 1 ) + 1 ) ) ‘ 1 ) = ( ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) ‘ 1 ) ) |
10 |
|
ackfnnn0 |
⊢ ( 𝑀 ∈ ℕ0 → ( Ack ‘ 𝑀 ) Fn ℕ0 ) |
11 |
10
|
adantr |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( Ack ‘ 𝑀 ) Fn ℕ0 ) |
12 |
|
nn0ex |
⊢ ℕ0 ∈ V |
13 |
12
|
a1i |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ℕ0 ∈ V ) |
14 |
|
ackendofnn0 |
⊢ ( 𝑀 ∈ ℕ0 → ( Ack ‘ 𝑀 ) : ℕ0 ⟶ ℕ0 ) |
15 |
14
|
adantr |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( Ack ‘ 𝑀 ) : ℕ0 ⟶ ℕ0 ) |
16 |
|
simpr |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → 𝑁 ∈ ℕ0 ) |
17 |
13 15 16
|
itcovalendof |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) : ℕ0 ⟶ ℕ0 ) |
18 |
17
|
ffnd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) Fn ℕ0 ) |
19 |
17
|
frnd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ran ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ⊆ ℕ0 ) |
20 |
|
fnco |
⊢ ( ( ( Ack ‘ 𝑀 ) Fn ℕ0 ∧ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) Fn ℕ0 ∧ ran ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ⊆ ℕ0 ) → ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) Fn ℕ0 ) |
21 |
11 18 19 20
|
syl3anc |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) Fn ℕ0 ) |
22 |
|
eqidd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) = ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) |
23 |
|
itcovalsucov |
⊢ ( ( ( Ack ‘ 𝑀 ) ∈ V ∧ 𝑁 ∈ ℕ0 ∧ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) = ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) ) |
24 |
4 16 22 23
|
syl3anc |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) ) |
25 |
24
|
fneq1d |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) Fn ℕ0 ↔ ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ 𝑁 ) ) Fn ℕ0 ) ) |
26 |
21 25
|
mpbird |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) Fn ℕ0 ) |
27 |
|
1nn0 |
⊢ 1 ∈ ℕ0 |
28 |
|
fvco2 |
⊢ ( ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) Fn ℕ0 ∧ 1 ∈ ℕ0 ) → ( ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) ‘ 1 ) = ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ‘ 1 ) ) ) |
29 |
26 27 28
|
sylancl |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( ( Ack ‘ 𝑀 ) ∘ ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ) ‘ 1 ) = ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ‘ 1 ) ) ) |
30 |
9 29
|
eqtrd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( ( 𝑁 + 1 ) + 1 ) ) ‘ 1 ) = ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ‘ 1 ) ) ) |
31 |
|
ackvalsuc1 |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ 𝑁 ) = ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ‘ 1 ) ) |
32 |
31
|
eqcomd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ‘ 1 ) = ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ 𝑁 ) ) |
33 |
32
|
fveq2d |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( Ack ‘ 𝑀 ) ‘ ( ( ( IterComp ‘ ( Ack ‘ 𝑀 ) ) ‘ ( 𝑁 + 1 ) ) ‘ 1 ) ) = ( ( Ack ‘ 𝑀 ) ‘ ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ 𝑁 ) ) ) |
34 |
3 30 33
|
3eqtrd |
⊢ ( ( 𝑀 ∈ ℕ0 ∧ 𝑁 ∈ ℕ0 ) → ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ ( 𝑁 + 1 ) ) = ( ( Ack ‘ 𝑀 ) ‘ ( ( Ack ‘ ( 𝑀 + 1 ) ) ‘ 𝑁 ) ) ) |