Metamath Proof Explorer


Theorem sseqfn

Description: A strong recursive sequence is a function over the nonnegative integers. (Contributed by Thierry Arnoux, 23-Apr-2019)

Ref Expression
Hypotheses sseqval.1 ⊢ φ → S ∈ V
sseqval.2 ⊢ φ → M ∈ Word S
sseqval.3 ⊢ W = Word S ∩ . -1 ℤ ≥ M
sseqval.4 ⊢ φ → F : W ⟶ S
Assertion sseqfn ⊢ φ → M seq str F Fn ℕ 0

Proof

Step Hyp Ref Expression
1 sseqval.1 ⊢ φ → S ∈ V
2 sseqval.2 ⊢ φ → M ∈ Word S
3 sseqval.3 ⊢ W = Word S ∩ . -1 ℤ ≥ M
4 sseqval.4 ⊢ φ → F : W ⟶ S
5 wrdfn ⊢ M ∈ Word S → M Fn 0 ..^ M
6 2 5 syl ⊢ φ → M Fn 0 ..^ M
7 fvex ⊢ x ⁡ x − 1 ∈ V
8 df-lsw ⊢ lastS = x ∈ V ⟼ x ⁡ x − 1
9 7 8 fnmpti ⊢ lastS Fn V
10 9 a1i ⊢ φ → lastS Fn V
11 lencl ⊢ M ∈ Word S → M ∈ ℕ 0
12 11 nn0zd ⊢ M ∈ Word S → M ∈ ℤ
13 seqfn ⊢ M ∈ ℤ → seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn ℤ ≥ M
14 2 12 13 3syl ⊢ φ → seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn ℤ ≥ M
15 ssv ⊢ ran ⁡ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ ⊆ V
16 15 a1i ⊢ φ → ran ⁡ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ ⊆ V
17 fnco ⊢ lastS Fn V ∧ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn ℤ ≥ M ∧ ran ⁡ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ ⊆ V → lastS ∘ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn ℤ ≥ M
18 10 14 16 17 syl3anc ⊢ φ → lastS ∘ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn ℤ ≥ M
19 fzouzdisj ⊢ 0 ..^ M ∩ ℤ ≥ M = ∅
20 19 a1i ⊢ φ → 0 ..^ M ∩ ℤ ≥ M = ∅
21 6 18 20 fnund ⊢ φ → M ∪ lastS ∘ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn 0 ..^ M ∪ ℤ ≥ M
22 1 2 3 4 sseqval ⊢ φ → M seq str F = M ∪ lastS ∘ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩
23 nn0uz ⊢ ℕ 0 = ℤ ≥ 0
24 elnn0uz ⊢ M ∈ ℕ 0 ↔ M ∈ ℤ ≥ 0
25 fzouzsplit ⊢ M ∈ ℤ ≥ 0 → ℤ ≥ 0 = 0 ..^ M ∪ ℤ ≥ M
26 24 25 sylbi ⊢ M ∈ ℕ 0 → ℤ ≥ 0 = 0 ..^ M ∪ ℤ ≥ M
27 2 11 26 3syl ⊢ φ → ℤ ≥ 0 = 0 ..^ M ∪ ℤ ≥ M
28 23 27 eqtrid ⊢ φ → ℕ 0 = 0 ..^ M ∪ ℤ ≥ M
29 22 28 fneq12d ⊢ φ → M seq str F Fn ℕ 0 ↔ M ∪ lastS ∘ seq M x ∈ V , y ∈ V ⟼ x ++ ⟨“ F ⁡ x ”⟩ ℕ 0 × M ++ ⟨“ F ⁡ M ”⟩ Fn 0 ..^ M ∪ ℤ ≥ M
30 21 29 mpbird ⊢ φ → M seq str F Fn ℕ 0