Statistiques
| Révision :

root / CSL16 / draft / wfm.tex @ 251

Historique | Voir | Annoter | Télécharger (29,97 ko)

1
\section{Witness function method}
2
\label{sect:wfm}
3
We now prove the converse to the last section: any provably convergent function in $\arith$ is polynomial-time computable.
4
To this end we use the \emph{witness function method} (WFM), a common technique in {bounded arithmetic} \cite{Buss86book}.
5

    
6
The WFM differs from realisability and Dialectica style witnessing arguments mainly since it does not require functionals at higher type. Instead a translation is conducted directly from a proof in De Morgan normal form, i.e.\ with negation pushed to the atoms, relying on classical logic. 
7
Free-cut elimination is employed to control the quantifer complexity of formulae occurring in a proof, although here we furthermore use it to control the presence of \emph{contraction} in a proof, to which we have access via the modalities of linear logic.
8
%Free-cut elimination is employed to control the logical complexity of formulae occurring in a proof, and a formal `witness' predicate plays a similar role to the realisability predicate.
9

    
10
The combination of De Morgan normalisation and free-cut elimination plays a similar role to the double negation translation, and this is even more evident in our setting where the transformation of a classical proof to anchored form can be seen to be a partial `constructivisation' of the proof. As well as eliminating the (nonconstructive) occurrences of the $\forall$-right rule, as usual for the WFM, the linear logic refinement of the logical connectives means that right-contraction steps is also eliminated. This is important due to the fact that we are in a setting where programs are equational specifications, not formulae (as in bounded arithmetic) or combinatory terms (as in applicative theories), so we cannot in general decide atomic formulae.
11

    
12
%Some key features of this method are the following:
13
%\begin{itemize}
14
%	\item T
15
%\end{itemize}
16
%
17
%Key features/differences from realisability:
18
%\begin{itemize}
19
%	\item De Morgan normal form: reduces type level to $0$, complementary to double-negation translation that \emph{increases} type level.
20
%	\item Free-cut elimination: allows us to handles formulae of fixed logical complexity throughout the proof. 
21
%	\item Respects logical properties of formulae, e.g.\ quantifier complexity, exponential complexity.
22
%\end{itemize}
23
%
24
%\todo{say some more here}
25
%
26
%\todo{compare with applicative theories}
27
%
28
%\anupam{in particular, need to point out that this argument is actually something in between, since usually the WFM requires programs to be defined by formulae, not equational specifications.}
29

    
30
\newcommand{\type}{\mathtt{t}}
31
\newcommand{\norm}{\nu}
32
\newcommand{\safe}{\sigma}
33

    
34

    
35
		
36
		\subsection{The translation}
37
		
38
We will associate to each (free-cut free) proof of a convergence statement in $\arith$ a function on $\Word$ defined by a BC program. In the next section we will show that this function satisfies the equational specification of the convergence statement, hence showing that any provably convergent function of $\arith$ is polynomial-time computable.\footnote{Strictly speaking, we will also require the equational specification at hand to be coherent, cf.\ Prop.~\ref{prop:eq-spec-model}.}
39
		
40
		\begin{definition}
41
			[Typing]
42
			To each $(\forall, ?)$-free $\word^+$-formula $A$ we associate a sorted tuple of variables $\type (A)$, intended to range over $\Word$, as follows:
43
			\[
44
			\begin{array}{rcll}
45
			\type (\word (t)) & := & (;x^{\word (t)} ) & \\
46
			\type(s = t) & := & ( ; x^{s = t}) & \\
47
			\type (s \neq t) & := & ( ;x^{s\neq t} )\\
48
%			\type (A \lor B)  & : = & (\vec u , \vec v ; \vec x , \vec y) & \text{if $\type(A) = (\vec u ; \vec x)$ and $\type(B) = (\vec v ; \vec y)$.} \\
49
			\type (A \star B)  & : = & (\vec u , \vec v ; \vec x , \vec y) & \text{if $\type(A) = (\vec u ; \vec x)$, $\type(B) = (\vec v ; \vec y)$ and $\star \in \{ \lor, \land, \laor, \laand \}$.} \\
50
			\type (! A) & : = & ( \vec u ,\vec x  ; ) & \text{if $\type(A) = (\vec u ; \vec x )$.} \\
51
			\type (\exists x^\word . A) & := & (\vec u ; \vec x , y) & \text{if $\type (A) = (\vec u ; \vec x)$.}
52
			%	\type (\forall x^N . A) & := & \Nat \to \type(A)
53
			\end{array}
54
			\]
55
			For a sorted tuple $(u_1 , \dots u_m ; x_1 , \dots ,x_n )$ we write $|(\vec u ; \vec x)|$ to denote its length, i.e.\ $m+n$.
56
			%	where $\nu$ designates that the inputs are normal.
57
		\end{definition}
58
		
59
		
60
%		\anupam{need to account for normality and safety somewhere. Attempting inlined and leaving types without this decoration.}
61
%		
62
%		\begin{remark}
63
%			[Distribution of $!$]
64
%			There is a potential issue that the $!$ contains $\lor$ symbols in its scope, whence we do not in general have $!(A \lor B) \cong !A \lor !B$. However this will not be a problem here by inspection of a convergence statement: there are no $\lor$ symbols in the scope of a $!$. Therefore, after free-cut elimination, no formula in the proof will have this property either.
65
%			
66
%			On the other hand, since we are working in affine logic, we do in general have $!(A \land B) \cong !A \land !B$.
67
%		\end{remark}
68
		
69
		This sorted tuple corresponds to the input variables, normal and safe respectively, for the BC programs that we will define.
70
%		\footnote{It becomes important here that we are considering proofs of a convergence statement, since a free-cut free $\arith$-proof of a convergence statement cannot contain any $\lor$ symbols in the scope of a $!$. This could cause an issue in the above definition since we do not in general have the equivalence $!(A \lor B) \equiv !A \lor !B$. On the other hand, the equivalence $!(A\land B) \equiv !A \land !B$ follows since we are in the affine setting.}
71
		
72
	
73
		Let us fix a particular (coherent) equational specification $\eqspec(f)$. Rather than directly considering $\arith$-proofs of $\conv ( f , \eqspec )$, we will consider a $\closure{\eqspec} \cup \arith $ sequent proof of $!\word (\vec x) \seqar \word (f (\vec x) )$, under Lemma~\ref{lemma:spec-norm-form}. 
74
%		
75
		Our crucial use of free-cut elimination is in the following result, which yields strong regularity properties:
76
		
77
		\begin{proposition}
78
			[Freedom]
79
			\label{prop:freedom}
80
	A free-cut free $\closure{\eqspec} \cup \arith $ sequent proof of $!\word (\vec x) \seqar \word (f (\vec x) )$ is:
81
	\begin{enumerate}
82
		\item\label{item:no-neg-word} Free of any negative occurrences of $\word$.
83
		\item\label{item:no-forall} Free of any $\forall$ symbols.
84
		\item\label{item:no-quest} Free of any $?$ symbols.
85
				\item\label{item:no-laor-step} Free of any $\laor$ or $\laand$ steps.\footnote{Because of the $\surj$ rule, the proof may still contain $\laor$ symbols, but these must be direct ancestors of some cut-step by free-cut freeness.}
86
	\end{enumerate}
87
		\end{proposition}
88
		
89
		
90
		For this reason we can assume that $\type$ is well-defined for all formulae occurring in a free-cut free proof of convergence, and so we can proceed with the translation from proofs to BC programs.
91
		
92
		\begin{definition}
93
			[Translation]
94
			We give a translation from a free-cut free $\closure{\eqspec} \cup \arith $ proof $\pi$, satisfying properties \ref{item:no-neg-word}, \ref{item:no-forall}, \ref{item:no-quest}, \ref{item:no-laor-step} of Prop.~\ref{prop:freedom} above, of a sequent $\Gamma \seqar \Delta$ to BC programs for a tuple of functions $\vec f^\pi$ with arguments $\type \left(\bigotimes\Gamma\right)$ such that $|\vec f^\pi | = | \type\left(\bigparr\Delta\right)|$.
95
			
96
			
97
			The translation is by induction on the size of $\pi$, so we proceed by inspection of its final step.
98
			
99
			If $\pi$ is an instance of the initial rules $\geneps, \sepeps^0 , \sepeps^1, \sepzer, \sepone$ or $\inj$ then $\vec f^\pi$ is simply the constant function $\epsilon$ (possibly with dummy inputs as required by $\type$).\footnote{This is because proofs of (in)equalities can be seen to carry no computational content.}
100
			The other initial steps of $\arith$ are translated as follows:
101
			\[
102
			\begin{array}{ccc}
103
%			\vlinf{\word_\epsilon}{}{\seqar \word (\epsilon)}{}
104
%			& : &
105
%			\epsilon
106
%			\\ 
107
			\vlinf{\genzer}{}{\word(t) \seqar \word(\succ_0 t)}{}
108
			& \quad :\quad  &
109
			\succ_0 ( ;x) 
110
			\\
111
			\vlinf{\genone}{}{\word(t) \seqar \word(\succ_1 t)}{}
112
			& \quad : \quad & 
113
			\succ_1 (; x)
114
			\\
115
%			\vlinf{\epsilon^0}{}{ \word (t)  , \epsilon = \succ_0 t \seqar }{} 
116
%			& : &
117
%			\epsilon
118
%			\\
119
%			\vlinf{\epsilon^1}{}{ \word (t)  , \epsilon = \succ_1 t \seqar }{}
120
%			& : &
121
%			\epsilon
122
%			\\
123
%			\vlinf{\succ_0}{}{\word (s) , \word (t)  , \succ_0 s = \succ_0 t\seqar s = t }{}
124
%			& : &
125
%			\epsilon
126
%			\\
127
%			\vlinf{\succ_1}{}{\word (s) , \word (t)  , \succ_1 s = \succ_1 t\seqar s = t }{}
128
%			& : &
129
%			\epsilon
130
%			\\
131
%			\vlinf{\inj}{}{\word(t), \succ_0 t = \succ_1 t \seqar}{}
132
%			& : &
133
%			\epsilon
134
%			\\
135
			\vlinf{\surj}{}{\word (t) \seqar t = \epsilon \laor \exists y^\word . t = \succ_0 y \laor \exists y^\word. t = \succ_1 y }{}
136
			&\quad : \quad  &
137
			( \epsilon , \pred (  ;x) , \pred (;x ) )
138
			\\
139
				\vlinf{\wordcntr}{}{\word(t) \seqar \word(t) \land \word(t) }{}
140
				& \quad  : \quad &
141
				( \id (;x) , \id (;x) )
142
			\end{array}
143
			\]
144
			If $\pi$ is an $\closure{\eqspec}$ initial step it is also translated simply to $\epsilon$.
145
		
146
		Finally, suppose $\pi$ is a logical initial step. If $\pi $ is an instance of $\id$, i.e.\ $p \seqar p$, then we translate it to $\id$. Notice that, if $\pi$ is an instance of $\lefrul{\bot}$ (i.e.\ $p, p^\bot \seqar $ ) or $\rigrul{\bot}$ (i.e.\ $\seqar p, p^\bot$) then $p$ must be an equality $s=t$ for some terms $s,t$, since $p$ must be atomic and, by assumption, $\word$ does not occur negatively. Therefore $\pi$ is translated to tuples of $\epsilon$ as appropriate.
147
			
148
		
149
			
150
			
151
			Now we consider the inductive cases.
152
			Suppose $\pi$ ends with a $\rigrul{\land}$ step:
153
			\[
154
			\vlderivation{
155
				\vliin{\land}{}{ \Gamma, \Sigma \seqar \Delta, \Pi, A\land B }{
156
					\vltr{\pi_1}{ \Gamma \seqar \Delta, A }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
157
				}{
158
				\vltr{\pi_2}{ \Sigma \seqar \Pi, B }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
159
			}
160
		}
161
		\]
162
		By the inductive hypothesis let us suppose we have functions $\vec g (\vec u; \vec x)$ and $\vec h (\vec v ; \vec y)$ from $\pi_1$ and $\pi_2$ respectively, where $\type\left( \bigotimes\Gamma \right) = (\vec u; \vec x)$ and $\type \left( \bigotimes \Sigma \right) = (\vec v ; \vec y)$. Let us write $\vec g = (\vec g^\Delta , \vec g^A)$ and $\vec h = (\vec h^\Pi , \vec h^B)$, to denote the $\Delta$ and $A$ parts of $\vec g$ and the $\Pi$ and $B$ parts of $\vec h$.
163
		%	So we have $\vec f^{1} (\vec x ; \vec a)$ and $\vec f^2 (\vec y ; \vec b)$ for $\pi_1 $ and $\pi_2$ respectively, by the inductive hypothesis. 
164
		We construct $\vec f^\pi$ by simply rearranging these tuples of functions:
165
		\[
166
		\vec f^\pi (\vec u , \vec v ; \vec x , \vec y)
167
		\quad := \quad
168
		\left(
169
		\vec g^\Delta (\vec u ; \vec x) , \vec h^\Pi (\vec v ; \vec y)  , \vec g^A (\vec u ; \vec x) , \vec h^B (\vec v ; \vec y)
170
		\right)
171
		\] 
172
		
173
		We will continue with similar notational conventions in the remainder of this argument.
174
		
175
		%	\anupam{bad notation since need to include free variables of sequent too. (also of theory.) Reconsider.}
176
		
177
		The case when $\pi$ ends with a $\lefrul{\lor}$ step is analogous to the $\rigrul{\land}$ case above.
178
		
179
		If $\pi$ consists of a subproof $\pi'$ ending with a $\lefrul{\land}$ or $\rigrul{\lor}$-step, then $\vec f^\pi$ is exactly $\vec f^{\pi'}$.
180
		
181
		
182
		By assumption, there are no $\laor$, $\laand$, $?$ or $\forall$ steps occurring in $\pi$.
183
		
184
		
185
			Suppose $\pi$ ends with a $\rigrul{\exists}$ step,
186
				\[
187
				\vlderivation{
188
					\vlin{\rigrul{\exists}}{}{ \Gamma, \word(t) \seqar \Delta , \exists x^\word . A(x) }{
189
						\vltr{\pi'}{ \Gamma \seqar \Delta , A(t) }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
190
					}
191
				}
192
				\]
193
				so by the inductive hypothesis we have functions $\vec f^\Delta , \vec f^{A(t)}$ with arguments $(\vec u ; \vec x )= \type(\bigotimes \Gamma)$. We define $\vec f^\pi$ as follows:
194
				\[
195
				\vec f^\pi (\vec u ; \vec x , y)
196
				\quad := \quad
197
				\left( 
198
				\vec f^\Delta (\vec u ; \vec x) ,
199
				{\id (;y)},
200
				\vec f^{A(t)} (\vec u; \vec x)  
201
				\right)
202
				\]
203
		%		(The identity function on $y$ is defined from successor, predecessor and safe composition).
204
				
205
				
206
				%Suppose we have functions $\vec f^X (\vec x ; \vec y)$ from $\pi'$ for $X = \Delta$ or $ X=A$. 
207
				%\[
208
				%\vec f(\vec x ; \vec y , z) \quad := \quad ( \vec f^\Delta (\vec x ; \vec y)   ,  z , \vec f^A ( \vec x ; \vec y ) )
209
				%\]
210
				
211
				
212
				If $\pi$ ends with a $\lefrul{\exists}$ step,
213
				\[
214
				\vlderivation{
215
					\vlin{\lefrul{\exists}}{}{ \Gamma, \exists x^\word . A(x) \seqar \Delta }{
216
						\vltr{\pi'}{ \Gamma , A(a),  \word(a) \seqar \Delta  }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
217
					}
218
				}
219
				\]
220
				then $\vec f^{\pi}$ is exactly the same as $\vec f^{\pi'}$.
221
				%
222
				%Suppose we have functions $\vec f' (\vec u , \vec v ; x , \vec y , \vec z)$ from $\pi'$ with $(\vec u ; \vec x )$ corresponding to $\Gamma$, $(;x)$ corresponding to $N(a)$ and $(\vec v ; \vec z)$ corresponding to $A(a)$. We define:
223
				%\[
224
				%\vec f ( \vec u , \vec v ;  )
225
				%\]
226
				
227
%				\anupam{should just be same? Consider variable naming, just in case.}
228
%				\anupam{This is probably where the consideration for free variables is.}
229
				
230
				%Suppose we have functions $\vec g (\vec v  , \vec w ; \vec x , y , \vec z)$ where $(\vec v ; \vec x) $ corresponds to $\Gamma$, $y$ corresponds to $\word(a)$ and $(\vec w ; \vec z) $ corresponds to $A(a)$. Then we define:
231
				%\[
232
				%\vec f ( \vec v , \vec w ; \vec x , y , \vec z )
233
				%\]
234
			
235
			
236
			
237
					%	\[
238
					%	\vlderivation{
239
					%	\vliin{\rigrul{\laand}}{}{\Gamma \seqar \Delta, A \laand B}{
240
					%	\vltr{\pi_1}{  \Gamma \seqar \Delta, A}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
241
					%	}{
242
					%	\vltr{\pi_2}{  \Gamma \seqar \Delta, B}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
243
					%	}
244
					%	}
245
					%	\]
246
					%	
247
					%	Suppose we have $\vec f^i (\vec x , \vec a ; \vec y , \vec b)$ from $\pi_i$.
248
					%	
249
					%	\anupam{problem: does this require many tests, just like for contraction? Can we isolate a different complexity class? e.g.\ PH or Grzegorzyck?}
250
					%	\anupam{skip this case and consider later.}
251
					
252
			%		\anupam{commented stuff on additives. To remark later perhaps.}
253
					
254
					
255
			If $\pi$ consists of a subproof $\pi'$ followed by a $\rigrul{!}$ step then $\vec f^\pi$ is exactly the same as $\vec f^{\pi'}$. If $\pi$ ends with a $\lefrul{!}$ step then we just appeal to Prop.~\ref{prop:bc-properties} to turn a safe input into a normal input.		
256
				
257
			Since there are no $?$ symbols in $\pi$, we can assume also that there are no $\rigrul{\cntr}$ steps in $\pi$.
258
						
259
		%		\anupam{This is important, so expand on this here or in a remark before/after.}
260
				
261
		Suppose $\pi$ ends with a $\lefrul{\cntr}$ step,
262
		\[
263
		\vlderivation{
264
			\vlin{\lefrul{\cntr}}{}{ !A , \Gamma \seqar \Delta }{
265
				\vltr{\pi'}{  !A, !A , \Gamma \seqar \Delta}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
266
			}
267
		}
268
		\]
269
		so we have functions $\vec f' ( \vec u^1, \vec u^2 , \vec v ; \vec x)$, with $\vec u^1$ and $\vec u^2$ corresponding to the two copies of $!A$ in the conclusion of $\pi'$ and $\type (\Gamma) = (\vec v; \vec x)$. 
270
%		(Recall that the typing corresponding to $!$ means that all inputs for each $!A$ are normal). 
271
		We define $\vec f^\pi$ by duplicating the arguments for $!A$:
272
		\[
273
		\vec f^\pi (\vec u , \vec v ; \vec x)
274
		\quad := \quad
275
		\vec f' (\vec u, \vec u , \vec v ; \vec x)
276
		\]
277
%		(Notice that this is obtainable in BC by a trivial instance of safe composition.)
278
		
279
		
280
		%	cntr right
281
		%	\[
282
		%	\vlderivation{
283
		%	\vlin{\rigrul{\cntr}}{}{\Gamma \seqar \Delta, ?A}{
284
		%	\vltr{\pi'}{  \Gamma \seqar \Delta, ?A, ?A}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
285
		%	}
286
		%	}
287
		%	\]
288
		%	(need test function against witness predicate?)
289
		%	
290
		%	\anupam{problem: how to test even equality of two terms? Maybe treat $?$ as $!$ on left?}
291
		%	
292
		%	\anupam{Not a problem by free-cut elimination! Can assume there are no $?$ in the proof! Is this equivalent to treaing $?$ as $!$ on left?}
293
		%	
294
		%	\anupam{Yes I think so. We can work in a left-sided calculus. only problem is for induction. But this can never be a problem for modalities since induction formulae are modality-free.}
295
		%	
296
		%	\anupam{this is actually the main point.}
297
		
298
	
299
		
300
	
301
		
302
		Suppose $\pi$ ends with a $\cut$ step:
303
		\[
304
		\vlderivation{
305
			\vliin{\cut}{}{\Gamma , \Sigma \seqar \Delta , \Pi}{
306
				\vltr{\pi_1}{ \Gamma \seqar \Delta, A }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
307
			}{
308
			\vltr{\pi_2}{\Sigma , A \seqar \Pi}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
309
		}
310
	}
311
	\]
312
	
313
	We have two cases. First, if $A$ is free of modalities, then $\type (A)$ consists of only safe inputs. Therefore we have functions $\vec g (\vec u; \vec x)$ and $\vec h (\vec v ; \vec y, \vec z)$ from $\pi_1$ and $\pi_2 $ respectively, such that $\type(\Gamma) = (\vec u ; \vec x)$, $\type(\Sigma) = (\vec v ; \vec y )$ and $\type (A) = (;\vec z)$. Let us write $\vec g = (\vec g^\Delta , \vec g^A)$ as before, and we define $\vec f^\pi$ as follows:
314
	
315
	\[
316
	\vec f^\pi ( \vec u , \vec v ; \vec x, \vec y)
317
	\quad := \quad
318
	\left(
319
	\vec g^\Delta (\vec u ; \vec x) 
320
	,
321
	\vec h ( \vec v ; \vec y , \vec g^A ( \vec u ; \vec x ) )
322
	\right)
323
	\]
324
	Notice that all safe inputs on the left occur hereditarily safe on the right, and so these expressions are definable in BC by Prop.~\ref{prop:bc-properties}.
325
	
326
	
327
	
328
	
329
	In the other case, where $A$ may be modal, it must be of the form $!\word (t)$ since it must directly descend from the left-hand side of an induction step, by free-cut freeness.
330
%	 or axiom on one side. The only such occurrence of a modality is in the conclusion of an induction step, whence such a formula has the form $!\word (t)$. 
331
	 Since the cut is anchored, we can also assume that the cut formula is principal on the other side, i.e.\ $\pi$ is of the form:
332
	
333
%	\anupam{need to check this assumption against free-cut elimination conditions. To discuss.}
334
	
335
\[
336
\vlderivation{
337
	\vliin{\cut}{}{!\Gamma , \Sigma  \seqar \Delta }{
338
		\vlin{\rigrul{!}}{}{!\Gamma \seqar  !\word(t)}{
339
			\vltr{\pi_1'}{!\Gamma \seqar  \word(t)}{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}}
340
			}
341
		}{
342
		\vltr{\pi_2}{ !\word(t), \Sigma\seqar \Delta}{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}}
343
		}
344
	}
345
\]
346
 where 
347
% $\pi_2$ ends with a $\ind$ step for which  $A(x)$ is the induction formula, and 
348
 we assume there are no side-formulae on the right of the end-sequent of $\pi_1$ for the same reason as $\rigrul{\cntr}$: $\pi$ does not contain any occurrences of $?$. By the inductive hypothesis we have functions $ g( \vec u ; )$ and $\vec h (  v , \vec w ; \vec x)$ from $\pi_1'$ and $\pi_2$ respectively, where $\vec u$, $ v$ and $(\vec w ; \vec x)$ correspond to $!\Gamma$,  $!\word(t)$ and $\Sigma$ respectively. We construct the functions $\vec f^\pi $ as follows:
349
\[
350
\vec f^\pi (\vec u , \vec w ; \vec x)
351
\quad := \quad
352
\vec h (   g(\vec u ; ), \vec w  ; \vec x)
353
\]
354
Notice, again, that all safe inputs on the left occur hereditarily safe on the right, and so these expressions are definable in BC by Prop.~\ref{prop:bc-properties}.
355

    
356

    
357
	
358
%	Suppose $\pi$ ends with a $\lefrul{!}$ step:
359
%	\[
360
%	\vlderivation{
361
%		\vlin{!}{}{\Gamma, !A \seqar \Delta}{
362
%			\vltr{\pi'}{ \Gamma , A \seqar \Delta  }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
363
%		}
364
%	}
365
%	\]
366
%	\todo{finish this case, just passing a safe input to a normal input.}
367
%	
368
%	
369
%	Suppose $\pi$ ends with a $\rigrul{!}$ step:
370
%	
371
%	\todo{finish this case, should not change function at all, but maybe there is a consideration.}
372
	
373
	If $\pi$ ends with a $\rigrul{\wk}$ step then we just add a tuple of constant functions $\vec \epsilon$ of appropriate length as dummy functions. If $\pi$ ends with a $\lefrul{\wk}$ step then we just add dummy inputs of appropriate length.
374
	
375
%	Suppose $\pi$ ends with a $\lefrul{\wk}$ step:
376
%	
377
%	\todo{finish this case, just add a dummy input.}
378
%	
379
%	Suppose $\pi$ ends with a $\rigrul{\wk}$ step:
380
%	
381
%	\todo{finish this case, just add a dummy function.}
382
%	
383
	
384
	
385
	Finally, suppose $\pi$ ends with an $\ind$ step. Since there are no occurrences of $?$ in $\pi$ we can again assume that there are no side formulae on the right of any induction step. Thus $\pi$ is of the form:
386
	\[
387
	\vlderivation{
388
		\vliin{\ind}{}{ !\word (t), !\Gamma  ,  A(\epsilon) \seqar A(t) }{
389
			\vltr{\pi_0}{!\word(a) , !\Gamma ,  A(a) \seqar A(\succ_0 a)}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
390
		}{
391
		\vltr{\pi_1}{!\word(a), !\Gamma ,  A(a)\seqar A(\succ_1 a) }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
392
	}
393
}
394
\]
395
%\anupam{is this better with a premiss for the base case?}
396

    
397
By the inductive hypothesis we have functions $\vec g^0 (u , \vec v ; \vec x)$ and $\vec g^1 (u , \vec v ; \vec x)$ with $u$, $\vec v$ and $\vec x$ corresponding to $!\word(a)$, $!\Gamma$ and $A(a)$ respectively. We define $\vec f^\pi$ by simultaneous predicative recursion on notation as follows:
398
\[
399
\begin{array}{rcll}
400
\vec f^\pi ( \epsilon, \vec v ; \vec x ) & := & \vec x & \\
401
\vec f^\pi ( \succ_i u , \vec v ; \vec x) & := & \vec g^i ( u, \vec v ; \vec f^\pi ( u, \vec v ; \vec x ) )
402
\end{array}
403
\]
404

    
405
%\anupam{check this}
406
%
407
%\todo{simultaneous PRN.}
408

    
409

    
410
\end{definition}
411

    
412
The induction step above is the reason why we enrich the usual BC framework with a simultaneous version of PRN.
413

    
414
\newcommand{\qfindth}{\mathit{IQF}}
415

    
416
\subsection{Witness predicate and extensional equivalence of functions}
417

    
418
%\anupam{need to mention that this predicate is similar to realisability predicate in absence, and indeed is presented like that for applicative theories, which also rely on free-cut elimination.}
419

    
420
Now that we have seen how to extract BC functions from proofs, we show that these functions satisfy the appropriate semantic properties, namely the equational program $\eqspec$ we started with. For this we turn to a quantifier-free classical theory, in a similar fashion to $\mathit{PV}$ for $S^1_2$ in \cite{Buss86book} or system $T$ in G\"odel's Dialectica interpretation. This is adequate since we only care about extensional properties of extracted functions at this stage, the complexity properties already handled by the BC programs we just constructed.
421

    
422
We point out that we could equally use a realisability approach, as done in e.g.\ \cite{Cantini02} and other works in applicative theories, since the formulae we deal with are essentially positive and so there is not much difference between the two approaches. Indeed here the witness predicate plays the same role as the realisability predicate in other works.
423

    
424
%The witness predicate of the WFM is similar to the realisability predicate, and this is even more true in out setting
425

    
426
Let $\qfindth$ be the classical theory over the language $\{ \epsilon, \succ_0, \succ_1 , (f^k_i )\}$ obtained from the axioms $\sepeps, \sepzer, \sepone, \inj, \surj$ and $\ind$ by dropping all relativisations to $\word$ (or $!\word$), replacing all linear connectives by their classical counterparts, and restricting induction to only quantifier-free formulae.
427

    
428
%For this we work in a quantifier-free classical logic whose atoms are equations between terms of our arithmetic and whose (sound) rules are simply the axioms of our arithmetic.
429
%
430
%(This is similar to the role of PV in the witnessing argument for $S^1_2$ and system $T$ for witnessing $I\Sigma_1$.)
431

    
432
	
433
%	\todo{add cases for $\laor$ and $\neq$.}
434
	
435
		\newcommand{\witness}[2]{\mathit{Witness}^{#1}_{#2}}
436
		\begin{definition}
437
			[Witness predicate]
438
			For formulae $A, B$ satisfying properties \ref{item:no-neg-word}, \ref{item:no-forall}, \ref{item:no-quest} of Prop.~\ref{prop:freedom}, we define the following `witness' predicate as a quantifier-free formula of $\qfindth$:
439
%			 $A$ with free variables amongst $\vec a$:
440
		
441
		\renewcommand{\sigma}{a}
442
			\[
443
			\begin{array}{rcll}
444
			\witness{}{A} (\sigma) & := & \sigma = t & \text{if $A$ is $\word (t)$.} \\
445
			\witness{}{A} (\sigma) & := & s=t & \text{if $A$ is $s=t$.} \\
446
						\witness{}{A} (\sigma) & := & s\neq t & \text{if $A$ is $s\neq t$.} \\
447
			\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A) \cor \witness{}{B} (\vec \sigma^B) & 
448
						\text{for $\star \in \{ \lor,\laor\}$.} 
449
			\\
450
			\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A ) \cand \witness{}{B} (\vec \sigma^B ) & 
451
						\text{for $\star \in \{ \land, \laand \}$.} 
452
			\\
453
			\witness{}{\exists x^\word A} ( \sigma, \vec \sigma^A  ) & := & \witness{}{A}(\vec \sigma^A , \sigma ) & \\
454
			\witness{}{!A} (\vec \sigma^A) & := & \witness{}{A} (\vec \sigma^A)
455
			\end{array}
456
			\]
457
			where $|\vec \sigma^A| = |\type (A)|$ and $|\vec \sigma^B| = |\type (B)| $.
458
		\end{definition}
459
		%	\todo{problem: what about complexity of checking equality? }
460
		
461
		\begin{remark}
462
		Notice that, unlike in the bounded arithmetic setting where the $\word$ predicate is redundant (since variables are tacitly assumed to range over $\word$), we do not parametrise the witness predicate by an assignment to the free variables of a formula. Instead these dependencies are taken care of by the explicit occurrences of the $\word$ predicate in $\arith$.
463
		\end{remark}
464
		
465
%		\todo{Reformulate above later if necessary.}
466
		
467
		%	\todo{What about $\nat (t)$? What does it mean? Replace with true?}
468
		
469
		%	\todo{either use the witness predicate above, or use realizability predicate at meta-level and a model theory, like BH.}
470
		
471
		%	\anupam{Need to check above properly. $N(t)$ should be witnessed by the value of $t $ in the model. For equality of terms the witness should not do anything.}
472
		
473
%		\anupam{to consider/remark: formally, is witness predicate checked in model or some logical theory?}
474

    
475

    
476

    
477

    
478
\begin{lemma}
479
\label{lemma:witness-invariant}
480
Let $\pi$ be a free-cut free proof in $\closure{\eqspec}\cup \arith$, satisfying properties \ref{item:no-neg-word}, \ref{item:no-forall}, \ref{item:no-quest}, \ref{item:no-laor-step} of Prop.~\ref{prop:freedom}, of a sequent $\Gamma \seqar \Delta $. Let $\eqspec^\pi$ denote the equational specification induced by the BC program for $\vec f^\pi$.\footnote{We assume that the function symbols occurring in $\eqspec^\pi$ are distinct from those occurring in $\eqspec$.} Then $\qfindth$ proves:
481
\[
482
\left(\forall \eqspec \cand \forall \eqspec^\pi \cand \witness{}{\bigotimes \Gamma} (\vec a)\right) \cimp \witness{}{\bigparr \Delta } (\vec f^\pi(\vec a))
483
\]
484
where $\forall \eqspec$ and $\forall \eqspec^\pi$ denote the universal closures of $\eqspec$ and $\eqspec^\pi$ respectively.
485
%Suppose $\pi$ is a free-cut free $\Sigma^\nat_1$-$\pind$ proof of a sequent $\Gamma (\vec a) \seqar \Delta (\vec a)$, with $\vec f^\pi$ defined as above. Then:
486
%	\[
487
%			\witness{\vec a}{\bigotimes \Gamma} (\vec w , \vec b) \implies \witness{\vec a}{\bigparr \Delta } (\vec f^\pi(\vec w , \vec b), \vec b)
488
%			\]
489
\end{lemma}
490
		
491
			
492
%			\anupam{to consider: do we need parameters $\vec a$ in argument of $f$? Or does $\nat$ predicate take care of this?}
493
%			
494
%			%	We will be explicit about normal and safe inputs when necessary, for the most part we will simply rearrange inputs into lists $(\vec u; \vec a)$ as in BC framework.
495
%			
496
%%			We often suppress the parameters $\vec a$ when it is not important.	
497
%			
498
%			\anupam{Is this implication provable in Bellantoni's version of PV based on BC?}
499
			
500
			%	\anupam{for moment try ignore decoration on right? what about negation?}
501
	
502
	
503
	\begin{proof}[Proof sketch]
504
	By structural induction on $\pi$, again, following the definition of $\vec f^\pi$. 
505
	\end{proof}	
506
	Notice that, since we are in a classical theory, the proof of the above lemma can be carried out in an arbitrary model, by the completeness theorem, greatly easing the exposition.
507
	
508
	Finally, we arrive at our main result, providing a converse to Thm.~\ref{thm:arith-proves-bc-conv}.
509
		
510
		\begin{theorem}
511
		\label{thm:main-result}
512
		For any coherent equational specification $\eqspec$, if $\arith $ proves $\conv (f , \eqspec)$ then there is a polynomial-time function $g $ on $\Word$ (of same arity as $f$) such that $\eqspec [  g/ f ]$.
513
		
514
%		If we can prove a convergence statement for a function $f$ under a specification $\Phi(f)$ then there is a BC-program for a function $\mathbf f$ such that:
515
%		\begin{equation}
516
%		\label{eqn:spec-implies-program}
517
%\Phi(f) \implies f (\vec x) = \mathbf{f} (\vec x)
518
%		\end{equation}
519
%		\begin{equation}
520
%		\label{eqn:program-satisfies-spec}
521
%		\Phi(\mathbf f)
522
%		\end{equation}
523
		\end{theorem}
524
		\begin{proof}
525
%		[Proof sketch]
526
		By Thm.~\ref{thm:free-cut-elim} and Lemma~\ref{lemma:spec-norm-form} we have a free-cut free proof $\pi$ in $\closure{\eqspec} \cup \arith$ of $!\word (\vec x ) \seqar \word (f (\vec x))$. By Lemma~\ref{lemma:witness-invariant} above this means that $\vec a = \vec x \cimp f^\pi (\vec a) = f(\vec x)$ is true in any model of $\qfindth$ satisfying $\eqspec$ and $\eqspec^\pi$. 
527
%		Since some model must exist by coherence (cf.\ Prop.~\ref{prop:eq-spec-model}), we have that 
528
		Using the fact that $\eqspec \cup \eqspec^\pi$ is coherent we can construct such a model, similarly to Prop.~\ref{prop:eq-spec-model}, which will contain $\Word$ as an initial segment, in which we must have $f^\pi (\vec x) = f (\vec x)$ for every $\vec x \in \Word$, as required.\todo{polish}
529
		\end{proof}
530
		
531
%			\begin{proof}
532
%			Notice that a convergence statement has the following form:
533
%			\[
534
%			!\Phi(f) , !\nat(\vec a) \seqar \nat(f (\vec a) )
535
%			\]
536
%			By the lemma above, and by inspection of the definition of the witness predicate, this means we have that,
537
%			\[
538
%			(\Phi(f) \cand \vec x = \vec a ) \implies \mathbf f (\vec x) = f(\vec a)
539
%			\]
540
%			whence we arrive at \eqref{eqn:spec-implies-program}.
541
%			
542
%			Finally, notice that $\Phi(f)$ has \emph{some} model, since it is a monotone inductive definition so some fixed point must exist. Therefore we obtain \eqref{eqn:program-satisfies-spec} as well.
543
%			\end{proof}
544
%			
545
%			\anupam{rephrase above proof to make more sense.}
546
%			
547
%%
548
%\newcommand{\concat}{\mathit{concat}}
549
%\paragraph{Some points on concatenation \anupam{if necessary}}
550
%We can define the concatenation operation by PRN:
551
%\[
552
%\begin{array}{rcl}
553
%\concat (\epsilon ; y) & : = & x \\
554
%\concat (\succ_i x ; y) & := & \succ_i \concat (x ; y)
555
%\end{array}
556
%\]
557
%
558
%From here we can define iterated concatenation:
559
%\[
560
%\concat (x_1 , \dots x_n ; y) \quad := \quad \concat (x_n ; \concat (x_{n-1} ; \vldots \concat (x_1 ; y) \vldots ) )
561
%\]
562
%
563
%(notice all safe inputs are hereditarily to the right of $;$ so this is definable by safe composition and projection.)