Statistiques
| Révision :

root / CSL16 / bc.tex @ 223

Historique | Voir | Annoter | Télécharger (5,31 ko)

1

    
2
\section{Bellantoni-Cook characterisation of polynomial-time functions}
3

    
4
We recall the Bellantoni-Cook  algebra BC of functions defined by \emph{safe} (or \emph{predicative}) recursion on notation \cite{BellantoniCook92}. These will be employed for proving both the completeness   (all polynomial time functions are provably convergent) and the soundness result (all provably total functions are polynomial time) of $\arith$. We consider function symbols $f$ over the domain  $\Word$ with sorted arguments $(\vec u ; \vec x)$, where the inputs $\vec u$ are called \textit{normal} and $\vec x$ are called \textit{safe}. 
5
%Each symbol is given with an arity $m$ and a number $n\leq m$ of normal arguments, and will be denoted as $f(\vec{u};\vec{x})$ where $\vec{u}$ (resp. $\vec{x}$) are the normal (resp. safe) arguments.
6
%We say that an expression is well-sorted if the arities of function symbols in it is respected.
7

    
8
%\patrick{Note that below I used the terminology 'BC programs', to distinguish them from 'functions' in the extensional sense, which I find clearer. But if you prefer to keep 'BC functions' it is all right for me.}
9
\begin{definition}
10
	[BC programs]
11
	BC is the set of functions generated as follows:
12
	%	\paragraph{Initial functions}
13
%	The initial functions are:
14
	\begin{enumerate}
15
		\item The constant functions $\epsilon^k$ which takes $k$ arguments and outputs $\epsilon \in \Word$.
16
		\item The projection functions $\pi^{m,n}_k ( x_1 , \dots , x_m ; x_{m+1} , \dots, x_{m+n} )  := x_k$ for $n,m \in \Word$ and $1 \leq k \leq m+n$.
17
		\item The successor functions $\succ_i ( ; x) := xi$ for $i = 0,1$.
18
		\item The predecessor function $\pred (; x) := \begin{cases}
19
		\epsilon &  \mbox{ if }  x = \epsilon \\
20
		x' &  \mbox{ if }  x = x'i
21
		\end{cases}$.
22
		\item The conditional function 
23
		\[
24
%\begin{array}{rcl}
25
%C (; \epsilon, y_\epsilon , y_0, y_1  ) & = & y_\epsilon \\
26
%C(; x0 , y_\epsilon , y_0, y_1) & = & y_0 \\
27
%C(; x1 , y_\epsilon , y_0, y_1) & = & y_1 
28
%\end{array}
29
C (; \epsilon, y_\epsilon , y_0, y_1  ) := y_\epsilon 
30
\quad
31
C(; x0 , y_\epsilon , y_0, y_1) := y_0 
32
\quad
33
C(; x1 , y_\epsilon , y_0, y_1) := y_1 
34
\]
35
%		$\cond (;x,y,z) := \begin{cases}
36
%		y & \mbox{ if } x=x' 0 \\
37
%		z & \text{otherwise}
38
%		\end{cases}$.
39
	\end{enumerate}
40
	
41
%	One considers the following closure schemes:
42
	\begin{enumerate}
43
	\setcounter{enumi}{5}
44
	\item Predicative recursion on notation (PRN). If $g, h_0, h_1 $ are in BC then so is $f$ defined by,
45
	\[
46
	\begin{array}{rcl}
47
	f(0, \vec v ; \vec x) & := & g(\vec v ; \vec x) \\
48
	f (\succ_i u , \vec v ; \vec x ) & := & h_i ( u , \vec v ; \vec x , f (u , \vec v ; \vec x) )
49
	\end{array}
50
	\]
51
	for $i = 0,1$,  so long as the expressions are well-formed. % (i.e.\ in number/sort of arguments).
52
	\item Safe composition. If $g, \vec h, \vec h'$ are in BC then so is $f$ defined by,
53
	\[
54
	f (\vec u ; \vec x) \quad := \quad g ( \vec h(\vec u ; ) ; \vec h' (\vec u ; \vec x) )
55
	\]
56
	so long as the expression is well-formed.
57
	\end{enumerate}
58
	\end{definition}
59
%Note that the  programs of this class can be defined by equational specifications in a natural way, and in the following we will thus silently identify a BC program with the corresponding equational specification.
60

    
61
We will implicitly identify a BC function with the equational specification it induces.
62
The main property of BC programs is:
63
\begin{theorem}[\cite{BellantoniCook92}]
64
The class of functions representable by BC programs is $\FP$.
65
\end{theorem}	
66
Actually this property remains true if one replaces the PRN scheme by the following more general simultaneous PRN scheme \cite{BellantoniThesis}:
67

    
68
$(f^j)_{1\leq j\leq n}$ are defined by simultaneous PRN scheme  from $(g^j)_{1\leq j\leq n}$, $(h^j_0, h^j_1)_{1\leq j\leq n}$ if for $1\leq j\leq n$ we have:
69
	\[
70
	\begin{array}{rcl}
71
	f^j(0, \vec v ; \vec x) & := & g^j(\vec v ; \vec x) \\
72
	f^j(\succ_i u , \vec v ; \vec x ) & := & h^j_i ( u , \vec v ; \vec x , \vec{f} (u , \vec v ; \vec x) )
73
	\end{array}
74
	\]
75
	for $i = 0,1$,  so long as the expressions are well-formed.
76

    
77
%\anupam{simultaneous recursion?}
78

    
79
%\anupam{also identity, hereditarily safe, expressions, etc.}
80

    
81
%\anupam{we implicitly associate a BC program with its equational specification} 
82

    
83
Consider a well-formed expression $t$ built from function symbols and variables. We say that a variable $y$ occurs \textit{hereditarily safe} in $t$ if, for every subexpression $f(\vec{r}; \vec{s})$ of $t$, the terms in $\vec{r}$ do not contain $y$.
84
For instance $y$ occurs hereditarily safe in $f(u;y,g(v;y))$, but not in $f(g(v;y);x)$.
85
\begin{proposition}
86
[Properties of BC programs]
87
\label{prop:bc-properties}
88
We have the following properties:
89
\begin{enumerate}
90
\item The identity function is in BC.
91
\item Let $t$ be a well-formed expression built from BC functions and variables, denote its free variables as $\{u_1,\dots, u_n,x_1,\dots, x_k\}$, and assume for each $1\leq i\leq k$, $x_i$ is hereditarily safe in $t$. Then the function $f(u_1,\dots, u_n; x_1,\dots, x_k):=t$ is in BC.
92
\item If $f$ is a BC function, then the function $g(\vec{u},v;\vec{x})$ defined as $f(\vec{u};v,\vec{x})$
93
is also a BC program.
94
\end{enumerate}
95

    
96
%\begin{proposition}
97
%[Properties of BC programs]
98
%\label{prop:bc-properties}
99
%We have the following properties:
100
%\begin{enumerate}
101
%\item Hereditarily safe expressions over BC programs are BC definable.
102
%\item Can pass safe input to normal input.
103
%\end{enumerate}
104
\end{proposition}