Statistiques
| Révision :

root / CSL16 / wfm.tex

Historique | Voir | Annoter | Télécharger (32,32 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
%.
5
%To this end we use the \emph{witness function method} (WFM), a common technique in {bounded arithmetic} \cite{Buss86book}.
6
using the witness function method (WFM) \cite{Buss86book}.
7

    
8
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. 
9
%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. This
10
%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.
11

    
12
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 free-cut free 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 are 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 \cite{Buss86book}) or combinatory terms (as in applicative theories \cite{Cantini02}), so we cannot in general decide atomic formulae.
13

    
14
%Some key features of this method are the following:
15
%\begin{itemize}
16
%	\item T
17
%\end{itemize}
18
%
19
%Key features/differences from realisability:
20
%\begin{itemize}
21
%	\item De Morgan normal form: reduces type level to $0$, complementary to double-negation translation that \emph{increases} type level.
22
%	\item Free-cut elimination: allows us to handles formulae of fixed logical complexity throughout the proof. 
23
%	\item Respects logical properties of formulae, e.g.\ quantifier complexity, exponential complexity.
24
%\end{itemize}
25
%
26
%\todo{say some more here}
27
%
28
%\todo{compare with applicative theories}
29
%
30
%\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.}
31

    
32
\newcommand{\type}{\mathtt{t}}
33
\newcommand{\norm}{\nu}
34
\newcommand{\safe}{\sigma}
35

    
36

    
37
		
38
		\subsection{The translation}
39
		
40
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.
41
%, 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}.}
42
		
43
		\begin{definition}
44
			[Typing]
45
			\label{dfn:typing}
46
			To each $(\forall, ?)$-free $\word^+$-formula $A$ we associate a sorted tuple of variables $\type (A)$, intended to range over $\Word$, as follows:
47
			\[
48
%			\begin{array}{rcll}
49
%			\type (\word (t)) & := & (;x^{\word (t)} ) & \\
50
%			\type(s = t) & := & ( ; x^{s = t}) & \\
51
%			\type (s \neq t) & := & ( ;x^{s\neq t} )\\
52
%%			\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)$.} \\
53
%			\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 \}$.} \\
54
%			\type (! A) & : = & ( \vec u ,\vec x  ; ) & \text{if $\type(A) = (\vec u ; \vec x )$.} \\
55
%			\type (\exists x^\word . A) & := & (\vec u ; \vec x , y) & \text{if $\type (A) = (\vec u ; \vec x)$.}
56
%			%	\type (\forall x^N . A) & := & \Nat \to \type(A)
57
%			\end{array}
58
%
59
			\begin{array}{rcll}
60
			\type (\word (t)) & := & (;x^{\word (t)} ) & \\
61
			\type(s = t) & := & ( ; x^{s = t}) & 
62
%			\\
63
%			\type (s \neq t) & := & ( ;x^{s\neq t} )\\
64
%%			\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)$.} \\
65
%			\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 \}$.} \\
66
%			\type (! A) & : = & ( \vec u ,\vec x  ; ) & \text{if $\type(A) = (\vec u ; \vec x )$.} \\
67
%			\type (\exists x^\word . A) & := & (\vec u ; \vec x , y) & \text{if $\type (A) = (\vec u ; \vec x)$.}
68
%			%	\type (\forall x^N . A) & := & \Nat \to \type(A)
69
			\end{array}
70
			\quad
71
						\begin{array}{rcll}
72
%						\type (\word (t)) & := & (;x^{\word (t)} ) & \\
73
%						\type(s = t) & := & ( ; x^{s = t}) & \\
74
						\type (s \neq t) & := & ( ;x^{s\neq t} )\\
75
			%			\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)$.} \\
76
%						\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 \}$.} \\
77
						\type (! A) & : = & ( \vec u ,\vec x  ; ) & 
78
%						\text{if $\type(A) = (\vec u ; \vec x )$.} \\
79
%						\type (\exists x^\word . A) & := & (\vec u ; \vec x , y) & \text{if $\type (A) = (\vec u ; \vec x)$.}
80
%						%	\type (\forall x^N . A) & := & \Nat \to \type(A)
81
						\end{array}
82
						\quad
83
									\begin{array}{rcll}
84
%									\type (\word (t)) & := & (;x^{\word (t)} ) & \\
85
%									\type(s = t) & := & ( ; x^{s = t}) & \\
86
%									\type (s \neq t) & := & ( ;x^{s\neq t} )\\
87
%						%			\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)$.} \\
88
									\type (A \star B)  & : = & (\vec u , \vec v ; \vec x , \vec y) & 
89
%									\text{if $\type(A) = (\vec u ; \vec x)$, $\type(B) = (\vec v ; \vec y)$ and $\star \in \{ \lor, \land, \laor, \laand \}$.} 
90
									\\
91
%									\type (! A) & : = & ( \vec u ,\vec x  ; ) & \text{if $\type(A) = (\vec u ; \vec x )$.} \\
92
									\type (\exists x^\word . A) & := & (\vec u ; \vec x , y) & 
93
%									\text{if $\type (A) = (\vec u ; \vec x)$.}
94
									%	\type (\forall x^N . A) & := & \Nat \to \type(A)
95
									\end{array}
96
			\]
97
			where $\type(A)  = (\vec u ; \vec x)$,  $\type(B)=(\vec v ;  \vec y)$  and $\star \in \{ \lor , \land, \laor, \laand \}$.
98
			%	where $\nu$ designates that the inputs are normal.
99
		\end{definition}
100
		
101
		
102
%		\anupam{need to account for normality and safety somewhere. Attempting inlined and leaving types without this decoration.}
103
%		
104
%		\begin{remark}
105
%			[Distribution of $!$]
106
%			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.
107
%			
108
%			On the other hand, since we are working in affine logic, we do in general have $!(A \land B) \cong !A \land !B$.
109
%		\end{remark}
110
		
111
					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$. This sorted tuple corresponds to input variables, normal and safe respectively.
112
%		\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.}
113
		
114
	
115
		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}. 
116
%		
117
		Free-cut elimination crucially yields strong regularity properties for proofs:
118
		
119
		\begin{proposition}
120
			[Freedom]
121
			\label{prop:freedom}
122
	A free-cut free $\closure{\eqspec} \cup \arith $ sequent proof of $!\word (\vec x) \seqar \word (f (\vec x) )$ is:
123
	\begin{enumerate}
124
		\item\label{item:no-neg-word} Free of any negative occurrences of $\word$.
125
		\item\label{item:no-forall} Free of any $\forall$ symbols.
126
		\item\label{item:no-quest} Free of any $?$ symbols.
127
				\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.}
128
	\end{enumerate}
129
		\end{proposition}
130
		
131
		
132
		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.
133
		
134
		\begin{definition}
135
			[Translation]
136
			\label{dfn:translation-of-proofs}
137
			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)|$.
138
			
139
			
140
			The translation is by induction on the structure of $\pi$, so we proceed by inspection of its final step.
141
			
142
			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$).
143
%			\footnote{This is because proofs of (in)equalities can be seen to carry no computational content.}
144
			If $\pi$ is an $\closure{\eqspec}$ or $=$ initial step it is also translated simply to $\epsilon$.
145
%			
146
			The initial steps $\genzer, \genone , \surj$ and $\wordcntr$ are translated to $\succ_0( ; x) , \succ_1 (; x), ( \epsilon , \pred ( ;x) , \pred (; x) )$ and $(\id (;x) , \id(;x))$ respectively.
147
%		
148
		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.
149
			
150
		
151
			
152
			
153
			Now we consider the inductive cases.
154
%	
155
%		We will continue with similar notational conventions in the remainder of this argument.
156
%		
157
%		%	\anupam{bad notation since need to include free variables of sequent too. (also of theory.) Reconsider.}
158
%		
159
If $\pi$ ends with a $\rigrul{\land}$ or $\lefrul{\lor}$ step then we just rearrange the tuple of functions obtained from the inductive hypothesis.
160
%		The case when $\pi$ ends with a $\lefrul{\lor}$ step is analogous to the $\rigrul{\land}$ case above.		
161
		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'}$.
162
			By assumption, there are no $\laor$, $\laand$, $?$ or $\forall$ steps occurring in $\pi$, and if $\pi$ consists of a subproof $\pi'$ followed by a $\lefrul{\exists}$ step then $\vec f^\pi$ is exactly the same as $\vec f^{\pi'}$, under possible reordering of the tuple.
163
		
164
			Suppose $\pi$ consists of a subproof $\pi'$ followed by a $\rigrul{\exists}$ step,
165
				\[
166
				\vlderivation{
167
					\vlin{\rigrul{\exists}}{}{ \Gamma, \word(t) \seqar \Delta , \exists x^\word . A(x) }{
168
%						\vltr{\pi'}{ \Gamma \seqar \Delta , A(t) }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
169
\vlhy{ \Gamma \seqar \Delta , A(t) }
170
					}
171
				}
172
				\]
173
				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 
174
%				$\vec f^\pi$ as follows:
175
%				\[
176
				$
177
				\vec f^\pi (\vec u ; \vec x , y)
178
%				\quad := \quad
179
				$ as $
180
				\left( 
181
				\vec f^\Delta (\vec u ; \vec x) ,
182
				{\id (;y)},
183
				\vec f^{A(t)} (\vec u; \vec x)  
184
				\right)
185
$.				
186
%\]
187
		%		(The identity function on $y$ is defined from successor, predecessor and safe composition).
188
				
189
				
190
				%Suppose we have functions $\vec f^X (\vec x ; \vec y)$ from $\pi'$ for $X = \Delta$ or $ X=A$. 
191
				%\[
192
				%\vec f(\vec x ; \vec y , z) \quad := \quad ( \vec f^\Delta (\vec x ; \vec y)   ,  z , \vec f^A ( \vec x ; \vec y ) )
193
				%\]
194
				
195
				
196
			
197
				%
198
				%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:
199
				%\[
200
				%\vec f ( \vec u , \vec v ;  )
201
				%\]
202
				
203
%				\anupam{should just be same? Consider variable naming, just in case.}
204
%				\anupam{This is probably where the consideration for free variables is.}
205
				
206
				%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:
207
				%\[
208
				%\vec f ( \vec v , \vec w ; \vec x , y , \vec z )
209
				%\]
210
			
211
			
212
			
213
					%	\[
214
					%	\vlderivation{
215
					%	\vliin{\rigrul{\laand}}{}{\Gamma \seqar \Delta, A \laand B}{
216
					%	\vltr{\pi_1}{  \Gamma \seqar \Delta, A}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
217
					%	}{
218
					%	\vltr{\pi_2}{  \Gamma \seqar \Delta, B}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
219
					%	}
220
					%	}
221
					%	\]
222
					%	
223
					%	Suppose we have $\vec f^i (\vec x , \vec a ; \vec y , \vec b)$ from $\pi_i$.
224
					%	
225
					%	\anupam{problem: does this require many tests, just like for contraction? Can we isolate a different complexity class? e.g.\ PH or Grzegorzyck?}
226
					%	\anupam{skip this case and consider later.}
227
					
228
			%		\anupam{commented stuff on additives. To remark later perhaps.}
229
					
230
					
231
			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.		
232
				
233
			Since there are no $?$ symbols in $\pi$, we can assume also that there are no $\rigrul{\cntr}$ steps in $\pi$.\footnote{Again, this is crucially important, since we cannot test the equality between arbitrary terms in the presence of nonlogical function symbols.}
234
						
235
		%		\anupam{This is important, so expand on this here or in a remark before/after.}
236
	
237
	If $\pi$ ends with a $\lefrul{\cntr}$ step then we duplicate some normal inputs of the functions obtained by the inductive hypothesis.			
238
	
239
%		(Notice that this is obtainable in BC by a trivial instance of safe composition.)
240
		
241
		
242
		%	cntr right
243
		%	\[
244
		%	\vlderivation{
245
		%	\vlin{\rigrul{\cntr}}{}{\Gamma \seqar \Delta, ?A}{
246
		%	\vltr{\pi'}{  \Gamma \seqar \Delta, ?A, ?A}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
247
		%	}
248
		%	}
249
		%	\]
250
		%	(need test function against witness predicate?)
251
		%	
252
		%	\anupam{problem: how to test even equality of two terms? Maybe treat $?$ as $!$ on left?}
253
		%	
254
		%	\anupam{Not a problem by free-cut elimination! Can assume there are no $?$ in the proof! Is this equivalent to treaing $?$ as $!$ on left?}
255
		%	
256
		%	\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.}
257
		%	
258
		%	\anupam{this is actually the main point.}
259
		
260
	
261
		If $\pi$ ends with a $\cut$ step whose cut-formula is free of modalities, then it can be directly translated to a safe composition of functions obtained by the inductive hypothesis, by relying on Prop.~\ref{prop:bc-properties}. Otherwise, the cut-formula 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.
262
%	 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)$. 
263
	 Since the cut is anchored, we can also assume that the cut formula is principal on the other side, i.e.\ $\pi$ ends as follows:	
264
%	\anupam{need to check this assumption against free-cut elimination conditions. To discuss.}
265
\[
266
\vlderivation{
267
	\vliin{\cut}{}{!\Gamma , \Sigma  \seqar \Delta }{
268
		\vlin{\rigrul{!}}{}{!\Gamma \seqar  !\word(t)}{
269
%			\vltr{\pi_1'}{!\Gamma \seqar  \word(t)}{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}}
270
\vlhy{!\Gamma \seqar  \word(t)}
271
			}
272
		}{
273
%		\vltr{\pi_2}{ !\word(t), \Sigma\seqar \Delta}{\vlhy{\quad}}{\vlhy{}}{\vlhy{\quad}}
274
\vlhy{ !\word(t), \Sigma\seqar \Delta}
275
		}
276
	}
277
\]
278
 where 
279
% $\pi_2$ ends with a $\ind$ step for which  $A(x)$ is the induction formula, and 
280
 we assume there are no side-formulae on the right of the end-sequent of the left subproof 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)$ 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:
281
\[
282
\vec f^\pi (\vec u , \vec w ; \vec x)
283
\quad := \quad
284
\vec h (   g(\vec u ; ), \vec w  ; \vec x)
285
\]
286
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}.
287

    
288

    
289
	
290
%	Suppose $\pi$ ends with a $\lefrul{!}$ step:
291
%	\[
292
%	\vlderivation{
293
%		\vlin{!}{}{\Gamma, !A \seqar \Delta}{
294
%			\vltr{\pi'}{ \Gamma , A \seqar \Delta  }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
295
%		}
296
%	}
297
%	\]
298
%	\todo{finish this case, just passing a safe input to a normal input.}
299
%	
300
%	
301
%	Suppose $\pi$ ends with a $\rigrul{!}$ step:
302
%	
303
%	\todo{finish this case, should not change function at all, but maybe there is a consideration.}
304
	
305
	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.
306
	
307
%	Suppose $\pi$ ends with a $\lefrul{\wk}$ step:
308
%	
309
%	\todo{finish this case, just add a dummy input.}
310
%	
311
%	Suppose $\pi$ ends with a $\rigrul{\wk}$ step:
312
%	
313
%	\todo{finish this case, just add a dummy function.}
314
%	
315
	
316
	
317
	Finally, suppose $\pi$ ends with a $\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$ ends as follows:
318
	\[
319
	\vlderivation{
320
		\vliin{\ind}{}{ !\word (t), !\Gamma  ,  A(\epsilon) \seqar A(t) }{
321
%			\vltr{\pi_0}{!\word(a) , !\Gamma ,  A(a) \seqar A(\succ_0 a)}{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
322
\vlhy{!\word(a) , !\Gamma ,  A(a) \seqar A(\succ_0 a)}
323
		}{
324
%		\vltr{\pi_1}{!\word(a), !\Gamma ,  A(a)\seqar A(\succ_1 a) }{\vlhy{\quad }}{\vlhy{ }}{\vlhy{\quad }}
325
\vlhy{!\word(a), !\Gamma ,  A(a)\seqar A(\succ_1 a)}
326
	}
327
}
328
\]
329
%\anupam{is this better with a premiss for the base case?}
330

    
331
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:
332
\[
333
\begin{array}{rcll}
334
\vec f^\pi ( \epsilon, \vec v ; \vec x ) & := & \vec x & \\
335
\vec f^\pi ( \succ_i u , \vec v ; \vec x) & := & \vec g^i ( u, \vec v ; \vec f^\pi ( u, \vec v ; \vec x ) )
336
\end{array}
337
%\vec f^\pi ( \epsilon, \vec v ; \vec x ) := \vec x  \qquad
338
%\vec f^\pi ( \succ_i u , \vec v ; \vec x) :=  \vec g^i ( u, \vec v ; \vec f^\pi ( u, \vec v ; \vec x ) )
339
\]
340

    
341
%\anupam{check this}
342
%
343
%\todo{simultaneous PRN.}
344

    
345

    
346
\end{definition}
347

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

    
350
\newcommand{\qfindth}{\mathit{IQF}}
351

    
352
\subsection{Witness predicate and extensional equivalence of functions}
353

    
354
%\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.}
355

    
356
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 \emph{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.
357

    
358
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 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.
359
%, the complexity properties already handled by the BC programs we just constructed.
360

    
361

    
362

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

    
365
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.
366

    
367
%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.
368
%
369
%(This is similar to the role of PV in the witnessing argument for $S^1_2$ and system $T$ for witnessing $I\Sigma_1$.)
370

    
371
	
372
%	\todo{add cases for $\laor$ and $\neq$.}
373
	
374
		\newcommand{\witness}[2]{\mathit{Wit}^{#1}_{#2}}
375
		\begin{definition}
376
			[Witness predicate]
377
			\label{dfn:wit-pred}
378
			For formulae $A, B$ of $\arith$ 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$:
379
%			 $A$ with free variables amongst $\vec a$:
380
		
381
		\renewcommand{\sigma}{a}
382
			\[
383
%			\begin{array}{rcll}
384
%			\witness{}{A} (\sigma) & := & \sigma = t & \text{if $A$ is $\word (t)$.} \\
385
%			\witness{}{A} (\sigma) & := & s=t & \text{if $A$ is $s=t$.} \\
386
%						\witness{}{A} (\sigma) & := & s\neq t & \text{if $A$ is $s\neq t$.} \\
387
%			\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A) \cor \witness{}{B} (\vec \sigma^B) & 
388
%						\text{for $\star \in \{ \lor,\laor\}$.} 
389
%			\\
390
%			\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A ) \cand \witness{}{B} (\vec \sigma^B ) & 
391
%						\text{for $\star \in \{ \land, \laand \}$.} 
392
%			\\
393
%			\witness{}{\exists x^\word A} ( \sigma, \vec \sigma^A  ) & := & \witness{}{A}(\vec \sigma^A , \sigma ) & \\
394
%			\witness{}{!A} (\vec \sigma^A) & := & \witness{}{A} (\vec \sigma^A)
395
%			\end{array}
396
			\begin{array}{rcl}
397
			\witness{}{\word (t)} (\sigma) & := & \sigma = t 
398
%			\text{if $A$ is $\word (t)$.} 
399
			\\
400
			\witness{}{s=t} (\sigma) & := & s=t 
401
%			\text{if $A$ is $s=t$.} 
402
			\\
403
			\witness{}{s \neq t} (\sigma) & := & s\neq t 
404
%			\text{if $A$ is $s\neq t$.} 
405
\\
406
%			\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A) \cor \witness{}{B} (\vec \sigma^B) & 
407
%			\text{for $\star \in \{ \lor,\laor\}$.} 
408
%			\\
409
%			\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A ) \cand \witness{}{B} (\vec \sigma^B ) & 
410
%			\text{for $\star \in \{ \land, \laand \}$.} 
411
%			\\
412
%			\witness{}{\exists x^\word A} ( \sigma, \vec \sigma^A  ) & := & \witness{}{A}(\vec \sigma^A , \sigma ) & \\
413
			\witness{}{!A} (\vec \sigma^A) & := & \witness{}{A} (\vec \sigma^A)
414
			\end{array}
415
			\quad
416
						\begin{array}{rcl}
417
%						\witness{}{\word (t)} (\sigma) & := & \sigma = t & \text{if $A$ is $\word (t)$.} \\
418
%						\witness{}{s=t} (\sigma) & := & s=t & \text{if $A$ is $s=t$.} \\
419
%						\witness{}{s \neq t} (\sigma) & := & s\neq t & 
420
%						\text{if $A$ is $s\neq t$.} 
421
%						\\
422
						\witness{}{A \bullet B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A) \cor \witness{}{B} (\vec \sigma^B) 
423
%						\text{for $\star \in \{ \lor,\laor\}$.} 
424
						\\
425
						\witness{}{A \circ B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A ) \cand \witness{}{B} (\vec \sigma^B )  
426
%						\text{for $\star \in \{ \land, \laand \}$.} 
427
						\\
428
						\witness{}{\exists x^\word A} ( \sigma, \vec \sigma^A  ) & := & \witness{}{A}(\vec \sigma^A , \sigma ) 
429
%						 \\
430
%						\witness{}{!A} (\vec \sigma^A) & := & \witness{}{A} (\vec \sigma^A)
431
						\end{array}
432
%						\begin{array}{rcl}
433
%%						\witness{}{\word (t)} (\sigma) & := & \sigma = t & \text{if $A$ is $\word (t)$.} \\
434
%%						\witness{}{s=t} (\sigma) & := & s=t & \text{if $A$ is $s=t$.} \\
435
%%						\witness{}{s \neq t} (\sigma) & := & s\neq t & \text{if $A$ is $s\neq t$.} \\
436
%%						\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A) \cor \witness{}{B} (\vec \sigma^B) & 
437
%%						\text{for $\star \in \{ \lor,\laor\}$.} 
438
%%						\\
439
%%						\witness{}{A \star B} ( \vec \sigma^A , \vec \sigma^B) & := &  \witness{}{A} (\vec \sigma^A ) \cand \witness{}{B} (\vec \sigma^B ) & 
440
%%						\text{for $\star \in \{ \land, \laand \}$.} 
441
%%						\\
442
%						\witness{}{\exists x^\word A} ( \sigma, \vec \sigma^A  ) & := & \witness{}{A}(\vec \sigma^A , \sigma )  \\
443
%						\witness{}{!A} (\vec \sigma^A) & := & \witness{}{A} (\vec \sigma^A)
444
%						\end{array}			
445
			\]
446
			where $\bullet \in \{ \lor, \laor \}$, $\circ \in \{ \land,\laand \}$, $|\vec \sigma^A| = |\type (A)|$ and $|\vec \sigma^B| = |\type (B)| $.
447
		\end{definition}
448
		%	\todo{problem: what about complexity of checking equality? }
449
		
450
%		\begin{remark}
451
		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$.
452
%		\end{remark}
453
		
454
%		\todo{Reformulate above later if necessary.}
455
		
456
		%	\todo{What about $\nat (t)$? What does it mean? Replace with true?}
457
		
458
		%	\todo{either use the witness predicate above, or use realizability predicate at meta-level and a model theory, like BH.}
459
		
460
		%	\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.}
461
		
462
%		\anupam{to consider/remark: formally, is witness predicate checked in model or some logical theory?}
463

    
464

    
465

    
466

    
467
\begin{lemma}
468
\label{lemma:witness-invariant}
469
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 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:
470
\[
471
\left(\forall \eqspec \cand \forall \eqspec^\pi \cand \witness{}{\bigotimes \Gamma} (\vec a)\right) \cimp \witness{}{\bigparr \Delta } (\vec f^\pi(\vec a))
472
\]
473
where $\forall \eqspec$ and $\forall \eqspec^\pi$ denote the universal closures of $\eqspec$ and $\eqspec^\pi$ respectively.
474
%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:
475
%	\[
476
%			\witness{\vec a}{\bigotimes \Gamma} (\vec w , \vec b) \implies \witness{\vec a}{\bigparr \Delta } (\vec f^\pi(\vec w , \vec b), \vec b)
477
%			\]
478
\end{lemma}
479
		
480
			
481
%			\anupam{to consider: do we need parameters $\vec a$ in argument of $f$? Or does $\nat$ predicate take care of this?}
482
%			
483
%			%	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.
484
%			
485
%%			We often suppress the parameters $\vec a$ when it is not important.	
486
%			
487
%			\anupam{Is this implication provable in Bellantoni's version of PV based on BC?}
488
			
489
			%	\anupam{for moment try ignore decoration on right? what about negation?}
490
	
491
	
492
	\begin{proof}[Proof sketch]
493
	By structural induction on $\pi$, again, following the definition of $\vec f^\pi$.\footnote{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.}
494
	\end{proof}	
495

    
496
	
497
	Finally, we arrive at our main result, providing a converse to Thm.~\ref{thm:arith-proves-bc-conv}.
498
		
499
		\begin{theorem}
500
		\label{thm:main-result}
501
		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$) satisfying $\eqspec [  g/ f ]$.
502
		
503
%		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:
504
%		\begin{equation}
505
%		\label{eqn:spec-implies-program}
506
%\Phi(f) \implies f (\vec x) = \mathbf{f} (\vec x)
507
%		\end{equation}
508
%		\begin{equation}
509
%		\label{eqn:program-satisfies-spec}
510
%		\Phi(\mathbf f)
511
%		\end{equation}
512
		\end{theorem}
513
		\begin{proof}
514
		[Proof sketch]
515
%		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$. 
516
%%		Since some model must exist by coherence (cf.\ Prop.~\ref{prop:eq-spec-model}), we have that 
517
%		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}
518
Follows from Lemmas~\ref{lemma:spec-norm-form} and \ref{lemma:witness-invariant}, Dfn.~\ref{dfn:wit-pred} and coherence of $\eqspec$, cf.~\ref{prop:eq-spec-model}.
519
		\end{proof}
520
		
521
%			\begin{proof}
522
%			Notice that a convergence statement has the following form:
523
%			\[
524
%			!\Phi(f) , !\nat(\vec a) \seqar \nat(f (\vec a) )
525
%			\]
526
%			By the lemma above, and by inspection of the definition of the witness predicate, this means we have that,
527
%			\[
528
%			(\Phi(f) \cand \vec x = \vec a ) \implies \mathbf f (\vec x) = f(\vec a)
529
%			\]
530
%			whence we arrive at \eqref{eqn:spec-implies-program}.
531
%			
532
%			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.
533
%			\end{proof}
534
%			
535
%			\anupam{rephrase above proof to make more sense.}
536
%			
537
%%
538
%\newcommand{\concat}{\mathit{concat}}
539
%\paragraph{Some points on concatenation \anupam{if necessary}}
540
%We can define the concatenation operation by PRN:
541
%\[
542
%\begin{array}{rcl}
543
%\concat (\epsilon ; y) & : = & x \\
544
%\concat (\succ_i x ; y) & := & \succ_i \concat (x ; y)
545
%\end{array}
546
%\]
547
%
548
%From here we can define iterated concatenation:
549
%\[
550
%\concat (x_1 , \dots x_n ; y) \quad := \quad \concat (x_n ; \concat (x_{n-1} ; \vldots \concat (x_1 ; y) \vldots ) )
551
%\]
552
%
553
%(notice all safe inputs are hereditarily to the right of $;$ so this is definable by safe composition and projection.)