root / CSL16 / draft / bc-convergence.tex @ 238
Historique | Voir | Annoter | Télécharger (14,24 ko)
1 | 101 | adas | |
---|---|---|---|
2 | 101 | adas | \section{Convergence of Bellantoni-Cook programs in $\arith$} |
3 | 101 | adas | \label{sect:bc-convergence} |
4 | 101 | adas | %\anupam{In this section, use whatever form of the deduction theorem is necessary and reverse engineer precise statement later.} |
5 | 101 | adas | |
6 | 101 | adas | In this section we show that $I\sigzer$, and so also $\arith$, proves the convergence of any equational specification induced by a BC program. Since BC programs can compute any polynomial-time function, we obtain a completeness result. In the next section we will show the converse, that any provably convergent function of $\arith$ is polynomial-time computable. |
7 | 101 | adas | |
8 | 101 | adas | The underlying construction of the proof here is similar in spirit to those occurring in \cite{Cantini02} and \cite{Leivant94:found-delin-ptime}. In fact, like in those works, only quantifier-free positive induction is required, but here we moreover must take care to respect additive and multiplicative behaviour of linear connectives, thereby achieving a somewhat stronger result. |
9 | 101 | adas | |
10 | 101 | adas | We will assume the formulation of BC programs with regular PRN, not simultaneous PRN. |
11 | 101 | adas | |
12 | 101 | adas | |
13 | 101 | adas | %\subsection{Convergence in arithmetic} |
14 | 101 | adas | |
15 | 101 | adas | %\begin{theorem} |
16 | 101 | adas | % [Convergence] |
17 | 101 | adas | % If $\Phi(f)$ is an equational specification corresponding to a BC-program defining $f$, then $\cax{\Sigma^N_1}{\pind} \proves \ !\Phi(f) \limp \forall \vec{x}^{!N} . N(f(\vec x))$. |
18 | 101 | adas | %\end{theorem} |
19 | 101 | adas | |
20 | 101 | adas | %We first want to show that the system ${\Sigma^{\word}_1}-{\pind}$ is expressive enough, that is to say that all polynomial-time functions can be represented by some equational specifications that are provably total. To do so we consider equational specifications of BC-programs. |
21 | 101 | adas | \begin{theorem} |
22 | 101 | adas | % [Convergence] |
23 | 101 | adas | \label{thm:arith-proves-bc-conv} |
24 | 101 | adas | If $\eqspec$ is a BC program defining a function $f$, then $I\sigzer$ proves $\conv(f, \eqspec)$. |
25 | 101 | adas | \end{theorem} |
26 | 101 | adas | |
27 | 101 | adas | \anupam{Consider informalising some of these arguments under (some version of) the deduction theorem. Formal stuff can be put in an appendix. Maybe add a remark somewhere about arguing informally under deduction, taking care for non-modalised formulae.} |
28 | 101 | adas | |
29 | 101 | adas | \begin{proof} |
30 | 101 | adas | % We write function symbols in $\arith$ with arguments delimited by $;$, as for BC-programs. |
31 | 101 | adas | We appeal to Lemma~\ref{lemma:spec-norm-form} and show that $\closure{\eqspec} \cup I\sigzer$ proves, |
32 | 101 | adas | \begin{equation} |
33 | 101 | adas | \label{eqn:prv-cvg-ih} |
34 | 101 | adas | \forall \vec{u}^{!\word} . \forall \vec{x}^\word . \word(f(\vec u ; \vec x)) |
35 | 101 | adas | \end{equation} |
36 | 101 | adas | We proceed by induction on the structure of a BC program for $f$. |
37 | 101 | adas | % We give some key cases in what follows. |
38 | 101 | adas | |
39 | 101 | adas | Suppose $f$ is defined by PRN as: |
40 | 101 | adas | \[ |
41 | 101 | adas | \begin{array}{rcl} |
42 | 101 | adas | f(0,\vec v ; \vec x) & = & g(\vec v ; \vec x) \\ |
43 | 101 | adas | f(\succ_i u , \vec v; \vec x) & = & h_i (u, \vec v ; \vec x , f(u , \vec v ; \vec x)) |
44 | 101 | adas | \end{array} |
45 | 101 | adas | \] |
46 | 101 | adas | By the inductive hypothesis we already have \eqref{eqn:prv-cvg-ih} for $g,h_0,h_1$ in place of $f$. We construct the following proof: |
47 | 101 | adas | \begin{equation} |
48 | 101 | adas | \label{eqn:prn-cvg-base} |
49 | 101 | adas | \vlderivation{ |
50 | 101 | adas | \vliq{\beta}{}{!\word(\vec v) , \word (\vec x) \seqar \word(f (\epsilon , \vec v ; \vec x)) }{ |
51 | 101 | adas | \vliq{\alpha}{}{!\word (\vec v) , \word (\vec x) \seqar \word (g (\vec v ; \vec x) ) }{ |
52 | 101 | adas | \vltr{\IH}{\seqar \forall \vec v^{!\word} . \forall \vec x^\word . \word (g (\vec v ; \vec x)) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
53 | 101 | adas | } |
54 | 101 | adas | } |
55 | 101 | adas | } |
56 | 101 | adas | \end{equation} |
57 | 101 | adas | where $\alpha$ is, |
58 | 101 | adas | \[ |
59 | 101 | adas | \vlderivation{ |
60 | 101 | adas | % \vliin{\cut}{}{ \word (\vec x) \seqar \word ( g (\vec v ; \vec x)) }{ |
61 | 101 | adas | % \vlin{\rigrul{!}}{}{\seqar !\word (v)}{ |
62 | 101 | adas | % \vlin{assump}{}{\seqar \word (\vec v)}{\vlhy{}} |
63 | 101 | adas | % } |
64 | 101 | adas | % }{ |
65 | 101 | adas | \vliin{\cut}{}{ !\word (\vec v ) , \word (\vec x) \seqar \word (g (\vec v ; \vec x )) }{ |
66 | 101 | adas | \vlhy{\seqar \forall \vec v^{!\word} . \forall \vec x^\word . \word (g (\vec v ; \vec x)) } |
67 | 101 | adas | }{ |
68 | 101 | adas | \vliq{\lefrul{\forall}}{ }{ !\word (\vec v) , \word (\vec x) , \forall \vec v^{!\word} . \forall \vec x^\word \word (g(\vec v ; \vec x )) \seqar \word (g(\vec v ; \vec x )) }{ |
69 | 101 | adas | \vlin{\id}{}{\word (g(\vec v ; \vec x )) \seqar \word (g(\vec v ; \vec x ))}{\vlhy{}} |
70 | 101 | adas | } |
71 | 101 | adas | } |
72 | 101 | adas | % } |
73 | 101 | adas | } |
74 | 101 | adas | \] |
75 | 101 | adas | and $\beta$ is: |
76 | 101 | adas | \[ |
77 | 101 | adas | \vlderivation{ |
78 | 101 | adas | \vliin{\cut}{}{!\word (\vec v) , \word (\vec x) \seqar \word ( f ( \epsilon , \vec v ; \vec x ) ) }{ |
79 | 101 | adas | \vlhy{!\word (\vec v) , \word (\vec x) \seqar \word (g (\vec v ; \vec x) ) } |
80 | 101 | adas | }{ |
81 | 101 | adas | \vliin{\cut}{}{ \word (g (\vec v ; \vec x) ) \seqar \word (f (\epsilon, \vec v ; \vec x) ) }{ |
82 | 101 | adas | \vlin{\closure{\eqspec}}{}{ \seqar f(\epsilon , \vec v ; \vec x) = g(\vec v ; \vec x) }{\vlhy{}} |
83 | 101 | adas | }{ |
84 | 101 | adas | \vlin{=}{}{\word ( g(\vec v ; \vec x) ) , f(\epsilon , \vec v ; \vec x) = g(\vec v ; \vec x) \seqar \word (f (\epsilon, \vec v ; \vec x) ) }{\vlhy{}} |
85 | 101 | adas | } |
86 | 101 | adas | } |
87 | 101 | adas | } |
88 | 101 | adas | \] |
89 | 101 | adas | |
90 | 101 | adas | % We first prove, |
91 | 101 | adas | % \begin{equation} |
92 | 101 | adas | % !\word (a) , !\word (\vec v) , \word (\vec x) \land \word (f( a , \vec v ; \vec x ) ) |
93 | 101 | adas | % \seqar |
94 | 101 | adas | % \word (\vec x) \land \word (f( \succ_i a , \vec v ; \vec x ) ) |
95 | 101 | adas | % \end{equation} |
96 | 101 | adas | % for $i=0,1$, whence we will apply $\ind$. We construct the following proofs: |
97 | 101 | adas | |
98 | 101 | adas | We also construct, for $i=0,1$, the proofs, |
99 | 101 | adas | \begin{equation} |
100 | 101 | adas | \label{eqn:prn-cvg-ind} |
101 | 101 | adas | %\vlderivation{ |
102 | 101 | adas | % \vlin{\rigrul{\limp}}{}{ \word(\vec x) \limp \word ( f(u, \vec v ; \vec x) ) \seqar \word (\vec x) \limp \word( f(\succ_i u , \vec v ; \vec x) ) }{ |
103 | 101 | adas | % \vliq{\gamma}{}{\word(\vec x), \word(\vec x) \limp \word ( f(u, \vec v ; \vec x) ) \seqar \word( f(\succ_i u , \vec v ; \vec x) ) }{ |
104 | 101 | adas | % \vliin{\lefrul{\limp}}{}{\word(\vec x), \word(\vec x), \word(\vec x) \limp \word ( f(u, \vec v ; \vec x) ) \seqar \word( f(\succ_i u , \vec v ; \vec x) ) }{ |
105 | 101 | adas | % \vlin{\id}{}{\word(\vec x) \seqar \word (\vec x) }{\vlhy{}} |
106 | 101 | adas | % }{ |
107 | 101 | adas | % \vliq{\beta}{}{ \word (\vec x) , \word (f(u , \vec v ; \vec x) ) \seqar \word ( f(\succ_i u , \vec v ; \vec x) ) }{ |
108 | 101 | adas | % \vliq{\alpha}{}{ \word (\vec x) , \word (f(u , \vec v ; \vec x) ) \seqar \word ( h_i( u , \vec v ; \vec x , f( u, \vec v ; \vec x )) ) }{ |
109 | 101 | adas | % \vltr{IH}{ \seqar \forall u^{!\word}, \vec v^{!\word} . \forall \vec x^\word , y^\word . \word( h_i (u, \vec v ; \vec x, y) ) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
110 | 101 | adas | % } |
111 | 101 | adas | % } |
112 | 101 | adas | % } |
113 | 101 | adas | % } |
114 | 101 | adas | % } |
115 | 101 | adas | % } |
116 | 101 | adas | \vlderivation{ |
117 | 101 | adas | \vlin{\lefrul{\land}}{}{ !\word (a) , !\word (\vec v) , \word (\vec x) \land \word (f( a , \vec v ; \vec x ) ) \seqar \word (\vec x) \land \word (f( \succ_i a , \vec v ; \vec x ) ) }{ |
118 | 101 | adas | \vlin{\lefrul{\cntr}}{}{ !\word (a) , !\word (\vec v) , \word (\vec x) , \word (f( a , \vec v ; \vec x ) ) \seqar \word (\vec x) \land \word (f( \succ_i a , \vec v ; \vec x ) )}{ |
119 | 101 | adas | \vliin{\rigrul{\land}}{}{ !\word (a) , !\word (\vec v) , \word(\vec x), \word (\vec x) , \word (f( a , \vec v ; \vec x ) ) \seqar \word (\vec x) \land \word (f( \succ_i a , \vec v ; \vec x ) )}{ |
120 | 101 | adas | \vlin{\id}{}{\word (\vec x) \seqar \word (\vec x)}{\vlhy{}} |
121 | 101 | adas | }{ |
122 | 101 | adas | \vliq{\beta}{}{ !\word (u) , !\word(\vec v) , \word (\vec x) , \word (f ( u , \vec v ; \vec x ) ) \seqar \word (f (\succ_i u , \vec{v} ; \vec x ) ) }{ |
123 | 101 | adas | \vliq{\alpha}{}{ !\word (u) , !\word (\vec v) , \word (\vec x) , \word (f ( u , \vec v ; \vec x ) ) \seqar \word ( h_i ( u , \vec v ; \vec x , f( u , \vec v ; \vec x ) ) ) }{ |
124 | 101 | adas | \vltr{\IH}{ \seqar \forall u^{!\word} , \vec v^{!\word} . \forall \vec x^\word , y^\word . \word ( h_i ( u, \vec v ; \vec x, y ) ) }{ \vlhy{\quad} }{\vlhy{}}{\vlhy{\quad}} |
125 | 101 | adas | } |
126 | 101 | adas | } |
127 | 101 | adas | } |
128 | 101 | adas | } |
129 | 101 | adas | } |
130 | 101 | adas | } |
131 | 101 | adas | \end{equation} |
132 | 101 | adas | where $\alpha$ and $\beta$ are constructed similarly to before. |
133 | 101 | adas | |
134 | 101 | adas | %% so let us suppose that $\word(\vec v)$ and prove, |
135 | 101 | adas | % \begin{equation} |
136 | 101 | adas | %% \forall u^{!\word} . (\word(\vec x) \limp \word(f(u , \vec v ; \vec x) ) |
137 | 101 | adas | %!\word (u) , !\word (\vec v) , \word (\vec x) \seqar \word ( f(u, \vec v ; \vec x) ) |
138 | 101 | adas | % \end{equation} |
139 | 101 | adas | % by $\cax{\Sigma^N_1}{\pind}$ on $u$. After this the result will follow by $\forall$-introduction for $u, \vec v , \vec x$. |
140 | 101 | adas | |
141 | 101 | adas | % In the base case we have the following proof, |
142 | 101 | adas | % \[ |
143 | 101 | adas | % \vlderivation{ |
144 | 101 | adas | % \vlin{\rigrul{\limp}}{}{ \seqar \word (\vec x) \limp \word (f(\epsilon , \vec v ; \vec x )) }{ |
145 | 101 | adas | % \vliq{\beta}{}{ \word (\vec x) \seqar \word ( f( \epsilon , \vec v ; \vec x) ) }{ |
146 | 101 | adas | % \vliq{\alpha}{}{ \word (\vec x) \seqar \word ( g (\vec v ; \vec x) ) }{ |
147 | 101 | adas | % \vltr{IH}{\seqar \forall v^{!\word} . \forall x^\word . \word( g(\vec v ; \vec x) ) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
148 | 101 | adas | % } |
149 | 101 | adas | % } |
150 | 101 | adas | % } |
151 | 101 | adas | % } |
152 | 101 | adas | |
153 | 101 | adas | |
154 | 101 | adas | Finally we compose these proofs as follows: |
155 | 101 | adas | |
156 | 101 | adas | \[ |
157 | 101 | adas | \vlderivation{ |
158 | 101 | adas | \vliq{\rigrul{\forall}}{}{ \seqar \forall u^{!\word} , \vec v^{!\word} . \forall \vec x^\word . \word ( f(u , \vec v ;\vec x) ) }{ |
159 | 101 | adas | \vliq{\lefrul{\cntr}}{}{ !\word (u), !\word (\vec v) , \word (\vec x) \seqar \word ( f(u , \vec v ;\vec x) ) } |
160 | 101 | adas | { |
161 | 101 | adas | \vliin{\cut}{}{ !\word (u), !\word(\vec v), !\word (\vec v) , \word (\vec x) , \word (\vec x) \seqar \word ( f(u , \vec v ;\vec x) ) }{ |
162 | 101 | adas | \vltr{}{ !\word (\vec v) , \word (\vec x) \seqar \word ( f( \epsilon , \vec v ; \vec x ) ) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
163 | 101 | adas | } |
164 | 101 | adas | { |
165 | 101 | adas | \vliq{\wk}{}{ !\word (u), !\word (\vec v) , \word (\vec x), \word ( f( \epsilon , \vec v ; \vec x ) ) \seqar \word ( f( u , \vec v ; \vec x ) ) }{ |
166 | 101 | adas | \vliq{\land\text{-}\mathit{inv}}{}{ !\word (u), !\word (\vec v) , \word (\vec x) ,\word ( f( \epsilon , \vec v ; \vec x ) ) \seqar \word (\vec x) \land \word ( f( u , \vec v ; \vec x ) ) }{ |
167 | 101 | adas | \vlin{\ind}{}{ !\word (u), !\word (\vec v) , \word (\vec x) \land \word ( f( \epsilon , \vec v ; \vec x ) ) \seqar \word (\vec x) \land \word ( f( u , \vec v ; \vec x ) ) } |
168 | 101 | adas | { |
169 | 101 | adas | \vlhy{ |
170 | 101 | adas | \left\{ |
171 | 101 | adas | \vltreeder{}{ !\word (a), !\word (\vec v) , \word (\vec x) \word ( f( a , \vec v ; \vec x ) ) \seqar \word (\vec x) \land \word ( f( \succ_i u , \vec v ; \vec x ) ) }{\quad}{}{} |
172 | 101 | adas | \right\}_{i=0,1} |
173 | 101 | adas | } |
174 | 101 | adas | } |
175 | 101 | adas | } |
176 | 101 | adas | } |
177 | 101 | adas | } |
178 | 101 | adas | } |
179 | 101 | adas | } |
180 | 101 | adas | } |
181 | 101 | adas | \] |
182 | 101 | adas | where the steps \todo{minor steps} |
183 | 101 | adas | |
184 | 101 | adas | %For the inductive step, we suppose that $\word (u)$ and the proof is as follows, |
185 | 101 | adas | % |
186 | 101 | adas | %where the steps indicated $\alpha$ and $\beta$ are analogous to those for the base case. |
187 | 101 | adas | %%, and $\gamma$ is an instance of the general scheme: |
188 | 101 | adas | %%\begin{equation} |
189 | 101 | adas | %%\label{eqn:nat-cntr-left-derivation} |
190 | 101 | adas | %%\vlderivation{ |
191 | 101 | adas | %% \vliin{\cut}{}{ \word (t) , \Gamma \seqar \Delta }{ |
192 | 101 | adas | %% \vlin{\wordcntr}{}{ \word (t) \seqar \word (t) \land \word (t) }{\vlhy{}} |
193 | 101 | adas | %% }{ |
194 | 101 | adas | %% \vlin{\lefrul{\land}}{}{\word (t) \land \word (t) , \Gamma \seqar \Delta}{ \vlhy{\word (t) ,\word (t) , \Gamma \seqar \Delta} } |
195 | 101 | adas | %% } |
196 | 101 | adas | %% } |
197 | 101 | adas | %%\end{equation} |
198 | 101 | adas | % |
199 | 101 | adas | %% |
200 | 101 | adas | %%For the inductive step, we need to show that, |
201 | 101 | adas | %%\[ |
202 | 101 | adas | %%\forall x^{!N} . (( N(\vec y) \limp N( f(x, \vec x ; \vec y) ) ) \limp N(\vec y) \limp N(f(\succ_i x , \vec x ; \vec y) ) ) |
203 | 101 | adas | %%\] |
204 | 101 | adas | %%so let us suppose that $N(x)$ and we give the following proof: |
205 | 101 | adas | %%\[ |
206 | 101 | adas | %%\vlderivation{ |
207 | 101 | adas | %% \vlin{N\cntr}{}{N(y) \limp ( N(y ) \limp N(f( x , \vec x ; \vec y ) ) ) \limp N(f (\succ_i x , \vec x ; \vec y) ) }{ |
208 | 101 | adas | %% \vliin{}{}{N(y) \limp N(y) \limp ( N(y ) \limp N(f( x , \vec x ; \vec y ) ) ) \limp N(f (\succ_i x , \vec x ; \vec y) ) }{ |
209 | 101 | adas | %% \vliin{}{}{ N(y) \limp N(y) \limp ( N(y) \limp N( f(x, \vec x ; \vec y) ) ) \limp N( h_i (x , \vec x ; \vec y , f(x , \vec x ; \vec y) ) ) }{ |
210 | 101 | adas | %% \vltr{MLL}{( N(\vec y) \limp (N (\vec y) \limp N(f(x, \vec x ; \vec y) )) \limp N(f(x, \vec x ; \vec y)) }{\vlhy{\quad }}{\vlhy{\ }}{\vlhy{\quad }} |
211 | 101 | adas | %% }{ |
212 | 101 | adas | %% \vlhy{2} |
213 | 101 | adas | %% } |
214 | 101 | adas | %% }{ |
215 | 101 | adas | %% \vlhy{3} |
216 | 101 | adas | %%} |
217 | 101 | adas | %%} |
218 | 101 | adas | %%} |
219 | 101 | adas | %%\] |
220 | 101 | adas | %%TOFINISH |
221 | 101 | adas | |
222 | 101 | adas | Suppose $f$ is defined by safe composition as follows: |
223 | 101 | adas | \[ |
224 | 101 | adas | f( \vec u ; \vec x ) |
225 | 101 | adas | \quad = \quad |
226 | 101 | adas | h( \vec g (\vec u ; ) ; \vec g' ( \vec u ; \vec x ) ) |
227 | 101 | adas | \] |
228 | 101 | adas | |
229 | 101 | adas | By the inductive hypothesis we already have \eqref{eqn:prv-cvg-ih} for $h$ and each $g_i$ and $g_j'$ in place of $f$. We construct the required proof as follows: |
230 | 101 | adas | \[ |
231 | 101 | adas | \vlderivation{ |
232 | 101 | adas | \vliq{\rigrul{\forall}}{}{ \seqar \forall\vec u^{!\word} . \forall \vec x^\word . \word( f(\vec u ; \vec x ) ) }{ |
233 | 101 | adas | \vliq{\beta}{}{ !\word (\vec u) , \word (\vec x) \seqar \word ( f( \vec u ; \vec x ) ) }{ |
234 | 101 | adas | \vliq{\cntr}{}{ !\word (\vec u) , \word (\vec x) \seqar \word ( h( \vec g(\vec u ;) ; \vec g' ( \vec u ; \vec x ) ) ) }{ |
235 | 101 | adas | \vliiiq{\cut}{}{!\word (\vec u) , \dots , !\word (\vec u) , \word (\vec x) , \dots , \word (\vec x) \seqar \word ( h( \vec g(\vec u ;) ; \vec g' ( \vec u ; \vec x ) ) ) }{ |
236 | 101 | adas | \vlhy{ |
237 | 101 | adas | \left\{ |
238 | 101 | adas | \vlderivation{ |
239 | 101 | adas | \vlin{\rigrul{!}}{}{ !\word (\vec u) \seqar !\word ( g_i (\vec u ;) ) }{ |
240 | 101 | adas | \vliq{\alpha}{}{ !\word (\vec u) \seqar \word ( g_i (\vec u ;) }{ |
241 | 101 | adas | \vltr{\IH}{ \forall \vec u^{!\word} . \word (g_i (\vec u ;) ) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
242 | 101 | adas | } |
243 | 101 | adas | } |
244 | 101 | adas | } |
245 | 101 | adas | \right\}_{i \leq |\vec g| } |
246 | 101 | adas | } |
247 | 101 | adas | }{ |
248 | 101 | adas | \vlhy{ |
249 | 101 | adas | \left\{ |
250 | 101 | adas | \vlderivation{ |
251 | 101 | adas | \vliq{\alpha}{}{ !\word ( \vec u ) , \word (\vec x) \seqar \word ( g_j' ( \vec u ; \vec x ) ) }{ |
252 | 101 | adas | \vltr{\IH}{ \seqar \forall \vec u^{!\word}. \forall \vec x^\word . \word ( g_j' (\vec u ; \vec x) ) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
253 | 101 | adas | } |
254 | 101 | adas | } |
255 | 101 | adas | \right\}_{j \leq |\vec g'|} |
256 | 101 | adas | } |
257 | 101 | adas | }{ |
258 | 101 | adas | \vliq{\alpha}{}{ !\word ( \vec g (\vec u ;) ) , \word ( \vec g ' ( \vec u ; \vec x ) ) \seqar \word ( h( \vec g(\vec u ;) ; \vec g' ( \vec u ; \vec x ) ) ) ) }{ |
259 | 101 | adas | \vltr{\IH}{ \seqar \forall \vec v^{!\word} . \forall \vec y^\word . \word ( h( \vec v ; \vec y ) ) }{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}} |
260 | 101 | adas | } |
261 | 101 | adas | } |
262 | 101 | adas | } |
263 | 101 | adas | } |
264 | 101 | adas | } |
265 | 101 | adas | } |
266 | 101 | adas | \] |
267 | 101 | adas | where $\alpha$ and $\beta$ are similar to before. |
268 | 101 | adas | |
269 | 101 | adas | \todo{reformat a bit} |
270 | 101 | adas | |
271 | 101 | adas | It remains to check the initial functions. |
272 | 101 | adas | |
273 | 101 | adas | Consider the conditional function, defined equationally as: |
274 | 101 | adas | \[ |
275 | 101 | adas | \begin{array}{rcl} |
276 | 101 | adas | C (; \epsilon, y_\epsilon , y_0, y_1 ) & = & y_\epsilon \\ |
277 | 101 | adas | C(; \succ_0 x , y_\epsilon , y_0, y_1) & = & y_0 \\ |
278 | 101 | adas | C(; \succ_1 x , y_\epsilon , y_0, y_1) & = & y_1 |
279 | 101 | adas | \end{array} |
280 | 101 | adas | \] |
281 | 101 | adas | Let $\vec y = ( y_\epsilon , y_0, y_1 )$ and construct the required proof as follows: |
282 | 101 | adas | \[ |
283 | 101 | adas | \vlderivation{ |
284 | 101 | adas | \vliq{}{}{ \word (x) , \word (\vec y) \seqar \word ( C(; x ,\vec y) )}{ |
285 | 101 | adas | \vliin{2\cdot \laor}{}{ x = \epsilon \laor \exists z^\word . x = \succ_0 z \laor \exists z^\word x = \succ_1 z , \word (\vec y) \seqar \word ( C(;x \vec y) ) }{ |
286 | 101 | adas | \vliq{}{}{ x = \epsilon , \word (\vec y) \seqar \word ( C(; x , \vec y) ) }{ |
287 | 101 | adas | \vliq{}{}{ \word (\vec y) \seqar \word ( C( ; \epsilon , \vec y ) ) }{ |
288 | 101 | adas | \vlin{\wk}{}{ \word (\vec y) \seqar \word (y_\epsilon) }{ |
289 | 101 | adas | \vlin{\id}{}{\word (y_\epsilon) \seqar \word ( y_\epsilon )}{\vlhy{}} |
290 | 101 | adas | } |
291 | 101 | adas | } |
292 | 101 | adas | } |
293 | 101 | adas | }{ |
294 | 101 | adas | \vlhy{ |
295 | 101 | adas | \left\{ |
296 | 101 | adas | \vlderivation{ |
297 | 101 | adas | \vlin{\lefrul{\exists}}{}{ \exists z^\word . x = \succ_i z , \word (\vec y) \seqar \word ( C(;x , \vec y) ) }{ |
298 | 101 | adas | \vliq{}{}{ x = \succ_i a , \word (\vec y ) \seqar \word (C(; x ,\vec y)) }{ |
299 | 101 | adas | \vliq{}{}{ \word (\vec y) \seqar \word ( C(; \succ_i a , \vec y ) ) }{ |
300 | 101 | adas | \vlin{\wk}{}{ \word (\vec y) \seqar \word (y_i) }{ |
301 | 101 | adas | \vlin{\id}{}{\word (y_i) \seqar \word (y_i)}{\vlhy{}} |
302 | 101 | adas | } |
303 | 101 | adas | } |
304 | 101 | adas | } |
305 | 101 | adas | } |
306 | 101 | adas | } |
307 | 101 | adas | \right\}_{i = 0,1} |
308 | 101 | adas | } |
309 | 101 | adas | } |
310 | 101 | adas | } |
311 | 101 | adas | } |
312 | 101 | adas | \] |
313 | 101 | adas | whence the result follows by $\forall$-introduction. |
314 | 101 | adas | \todo{reformat a bit} |
315 | 101 | adas | |
316 | 101 | adas | Other initial functions are far simpler. |
317 | 101 | adas | |
318 | 101 | adas | \end{proof} |
319 | 101 | adas | |
320 | 101 | adas | |
321 | 101 | adas | |
322 | 101 | adas | |
323 | 101 | adas | |
324 | 101 | adas | |
325 | 101 | adas | |
326 | 101 | adas | |
327 | 101 | adas | |
328 | 101 | adas | |
329 | 101 | adas | |
330 | 101 | adas | |
331 | 101 | adas | |
332 | 101 | adas | |
333 | 101 | adas | |
334 | 101 | adas | |
335 | 101 | adas | |
336 | 101 | adas | |
337 | 101 | adas | |
338 | 101 | adas | |
339 | 101 | adas | |
340 | 101 | adas | |
341 | 101 | adas | |
342 | 101 | adas | |
343 | 101 | adas | |
344 | 101 | adas | |
345 | 101 | adas | |
346 | 101 | adas | |
347 | 101 | adas | |
348 | 101 | adas | |
349 | 101 | adas | |
350 | 101 | adas | |
351 | 101 | adas | |
352 | 101 | adas | |
353 | 101 | adas | |
354 | 101 | adas | |
355 | 101 | adas | |
356 | 101 | adas | |
357 | 101 | adas | |
358 | 101 | adas | |
359 | 101 | adas |