Metamath Proof Explorer


Theorem sseqf

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

Ref Expression
Hypotheses sseqval.1 φSV
sseqval.2 φMWordS
sseqval.3 W=WordS.-1M
sseqval.4 φF:WS
Assertion sseqf φMseqstrF:0S

Proof

Step Hyp Ref Expression
1 sseqval.1 φSV
2 sseqval.2 φMWordS
3 sseqval.3 W=WordS.-1M
4 sseqval.4 φF:WS
5 wrdf MWordSM:0..^MS
6 2 5 syl φM:0..^MS
7 vex wV
8 7 a1i φwWwV
9 fvex xx1V
10 df-lsw lastS=xVxx1
11 9 10 dmmpti domlastS=V
12 8 11 eleqtrrdi φwWwdomlastS
13 eldifsn wWwWw
14 inss1 WordS.-1MWordS
15 3 14 eqsstri WWordS
16 15 sseli wWwWordS
17 lswcl wWordSwlastSwS
18 16 17 sylan wWwlastSwS
19 13 18 sylbi wWlastSwS
20 19 adantl φwWlastSwS
21 12 20 jca φwWwdomlastSlastSwS
22 21 ralrimiva φwWwdomlastSlastSwS
23 9 10 fnmpti lastSFnV
24 fnfun lastSFnVFunlastS
25 ffvresb FunlastSlastSW:WSwWwdomlastSlastSwS
26 23 24 25 mp2b lastSW:WSwWwdomlastSlastSwS
27 22 26 sylibr φlastSW:WS
28 eqid M=M
29 lencl MWordSM0
30 29 nn0zd MWordSM
31 2 30 syl φM
32 ovex M++⟨“FM”⟩V
33 simpr φaMaM
34 2 29 syl φM0
35 34 adantr φaMM0
36 elnn0uz M0M0
37 35 36 sylib φaMM0
38 uztrn aMM0a0
39 33 37 38 syl2anc φaMa0
40 nn0uz 0=0
41 39 40 eleqtrrdi φaMa0
42 fvconst2g M++⟨“FM”⟩Va00×M++⟨“FM”⟩a=M++⟨“FM”⟩
43 32 41 42 sylancr φaM0×M++⟨“FM”⟩a=M++⟨“FM”⟩
44 1 2 3 4 sseqmw φMW
45 4 44 ffvelcdmd φFMS
46 45 s1cld φ⟨“FM”⟩WordS
47 ccatcl MWordS⟨“FM”⟩WordSM++⟨“FM”⟩WordS
48 2 46 47 syl2anc φM++⟨“FM”⟩WordS
49 32 a1i φM++⟨“FM”⟩V
50 ccatws1len MWordSM++⟨“FM”⟩=M+1
51 2 50 syl φM++⟨“FM”⟩=M+1
52 uzid MMM
53 peano2uz MMM+1M
54 31 52 53 3syl φM+1M
55 51 54 eqeltrd φM++⟨“FM”⟩M
56 hashf .:V0+∞
57 ffn .:V0+∞.FnV
58 elpreima .FnVM++⟨“FM”⟩.-1MM++⟨“FM”⟩VM++⟨“FM”⟩M
59 56 57 58 mp2b M++⟨“FM”⟩.-1MM++⟨“FM”⟩VM++⟨“FM”⟩M
60 49 55 59 sylanbrc φM++⟨“FM”⟩.-1M
61 48 60 elind φM++⟨“FM”⟩WordS.-1M
62 61 3 eleqtrrdi φM++⟨“FM”⟩W
63 62 adantr φaMM++⟨“FM”⟩W
64 ccatws1n0 MWordSM++⟨“FM”⟩
65 2 64 syl φM++⟨“FM”⟩
66 65 adantr φaMM++⟨“FM”⟩
67 eldifsn M++⟨“FM”⟩WM++⟨“FM”⟩WM++⟨“FM”⟩
68 63 66 67 sylanbrc φaMM++⟨“FM”⟩W
69 43 68 eqeltrd φaM0×M++⟨“FM”⟩aW
70 eqidd φaWbWxV,yVx++⟨“Fx”⟩=xV,yVx++⟨“Fx”⟩
71 simprl φaWbWx=ay=bx=a
72 71 fveq2d φaWbWx=ay=bFx=Fa
73 72 s1eqd φaWbWx=ay=b⟨“Fx”⟩=⟨“Fa”⟩
74 71 73 oveq12d φaWbWx=ay=bx++⟨“Fx”⟩=a++⟨“Fa”⟩
75 vex aV
76 75 a1i φaWbWaV
77 vex bV
78 77 a1i φaWbWbV
79 ovex a++⟨“Fa”⟩V
80 79 a1i φaWbWa++⟨“Fa”⟩V
81 70 74 76 78 80 ovmpod φaWbWaxV,yVx++⟨“Fx”⟩b=a++⟨“Fa”⟩
82 eldifi aWaW
83 82 ad2antrl φaWbWaW
84 15 83 sselid φaWbWaWordS
85 4 adantr φaWbWF:WS
86 85 83 ffvelcdmd φaWbWFaS
87 86 s1cld φaWbW⟨“Fa”⟩WordS
88 ccatcl aWordS⟨“Fa”⟩WordSa++⟨“Fa”⟩WordS
89 84 87 88 syl2anc φaWbWa++⟨“Fa”⟩WordS
90 15 82 sselid aWaWordS
91 90 ad2antrl φaWbWaWordS
92 ccatws1len aWordSa++⟨“Fa”⟩=a+1
93 91 92 syl φaWbWa++⟨“Fa”⟩=a+1
94 83 3 eleqtrdi φaWbWaWordS.-1M
95 94 elin2d φaWbWa.-1M
96 elpreima .FnVa.-1MaVaM
97 56 57 96 mp2b a.-1MaVaM
98 95 97 sylib φaWbWaVaM
99 peano2uz aMa+1M
100 98 99 simpl2im φaWbWa+1M
101 93 100 eqeltrd φaWbWa++⟨“Fa”⟩M
102 elpreima .FnVa++⟨“Fa”⟩.-1Ma++⟨“Fa”⟩Va++⟨“Fa”⟩M
103 56 57 102 mp2b a++⟨“Fa”⟩.-1Ma++⟨“Fa”⟩Va++⟨“Fa”⟩M
104 80 101 103 sylanbrc φaWbWa++⟨“Fa”⟩.-1M
105 89 104 elind φaWbWa++⟨“Fa”⟩WordS.-1M
106 105 3 eleqtrrdi φaWbWa++⟨“Fa”⟩W
107 ccatws1n0 aWordSa++⟨“Fa”⟩
108 91 107 syl φaWbWa++⟨“Fa”⟩
109 eldifsn a++⟨“Fa”⟩Wa++⟨“Fa”⟩Wa++⟨“Fa”⟩
110 106 108 109 sylanbrc φaWbWa++⟨“Fa”⟩W
111 81 110 eqeltrd φaWbWaxV,yVx++⟨“Fx”⟩bW
112 28 31 69 111 seqf φseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:MW
113 fco2 lastSW:WSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:MWlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:MS
114 27 112 113 syl2anc φlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:MS
115 fzouzdisj 0..^MM=
116 115 a1i φ0..^MM=
117 fun M:0..^MSlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:MS0..^MM=MlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:0..^MMSS
118 6 114 116 117 syl21anc φMlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:0..^MMSS
119 1 2 3 4 sseqval φMseqstrF=MlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩
120 fzouzsplit M00=0..^MM
121 36 120 sylbi M00=0..^MM
122 2 29 121 3syl φ0=0..^MM
123 40 122 eqtrid φ0=0..^MM
124 unidm SS=S
125 124 a1i φSS=S
126 125 eqcomd φS=SS
127 119 123 126 feq123d φMseqstrF:0SMlastSseqMxV,yVx++⟨“Fx”⟩0×M++⟨“FM”⟩:0..^MMSS
128 118 127 mpbird φMseqstrF:0S