This is an inofficial mirror of http://metamath.tirix.org for personal testing of a visualizer extension only.
Description: Define the Ackermann function (recursively). (Contributed by Thierry Arnoux, 28-Apr-2024) (Revised by AV, 2-May-2024)
| Ref | Expression | ||
|---|---|---|---|
| Assertion | df-ack | ⊢ Ack = seq 0 ( ( 𝑓 ∈ V , 𝑗 ∈ V ↦ ( 𝑛 ∈ ℕ0 ↦ ( ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) ‘ 1 ) ) ) , ( 𝑖 ∈ ℕ0 ↦ if ( 𝑖 = 0 , ( 𝑛 ∈ ℕ0 ↦ ( 𝑛 + 1 ) ) , 𝑖 ) ) ) |
| Step | Hyp | Ref | Expression |
|---|---|---|---|
| 0 | cack | ⊢ Ack | |
| 1 | cc0 | ⊢ 0 | |
| 2 | vf | ⊢ 𝑓 | |
| 3 | cvv | ⊢ V | |
| 4 | vj | ⊢ 𝑗 | |
| 5 | vn | ⊢ 𝑛 | |
| 6 | cn0 | ⊢ ℕ0 | |
| 7 | citco | ⊢ IterComp | |
| 8 | 2 | cv | ⊢ 𝑓 |
| 9 | 8 7 | cfv | ⊢ ( IterComp ‘ 𝑓 ) |
| 10 | 5 | cv | ⊢ 𝑛 |
| 11 | caddc | ⊢ + | |
| 12 | c1 | ⊢ 1 | |
| 13 | 10 12 11 | co | ⊢ ( 𝑛 + 1 ) |
| 14 | 13 9 | cfv | ⊢ ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) |
| 15 | 12 14 | cfv | ⊢ ( ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) ‘ 1 ) |
| 16 | 5 6 15 | cmpt | ⊢ ( 𝑛 ∈ ℕ0 ↦ ( ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) ‘ 1 ) ) |
| 17 | 2 4 3 3 16 | cmpo | ⊢ ( 𝑓 ∈ V , 𝑗 ∈ V ↦ ( 𝑛 ∈ ℕ0 ↦ ( ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) ‘ 1 ) ) ) |
| 18 | vi | ⊢ 𝑖 | |
| 19 | 18 | cv | ⊢ 𝑖 |
| 20 | 19 1 | wceq | ⊢ 𝑖 = 0 |
| 21 | 5 6 13 | cmpt | ⊢ ( 𝑛 ∈ ℕ0 ↦ ( 𝑛 + 1 ) ) |
| 22 | 20 21 19 | cif | ⊢ if ( 𝑖 = 0 , ( 𝑛 ∈ ℕ0 ↦ ( 𝑛 + 1 ) ) , 𝑖 ) |
| 23 | 18 6 22 | cmpt | ⊢ ( 𝑖 ∈ ℕ0 ↦ if ( 𝑖 = 0 , ( 𝑛 ∈ ℕ0 ↦ ( 𝑛 + 1 ) ) , 𝑖 ) ) |
| 24 | 17 23 1 | cseq | ⊢ seq 0 ( ( 𝑓 ∈ V , 𝑗 ∈ V ↦ ( 𝑛 ∈ ℕ0 ↦ ( ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) ‘ 1 ) ) ) , ( 𝑖 ∈ ℕ0 ↦ if ( 𝑖 = 0 , ( 𝑛 ∈ ℕ0 ↦ ( 𝑛 + 1 ) ) , 𝑖 ) ) ) |
| 25 | 0 24 | wceq | ⊢ Ack = seq 0 ( ( 𝑓 ∈ V , 𝑗 ∈ V ↦ ( 𝑛 ∈ ℕ0 ↦ ( ( ( IterComp ‘ 𝑓 ) ‘ ( 𝑛 + 1 ) ) ‘ 1 ) ) ) , ( 𝑖 ∈ ℕ0 ↦ if ( 𝑖 = 0 , ( 𝑛 ∈ ℕ0 ↦ ( 𝑛 + 1 ) ) , 𝑖 ) ) ) |