on quasi interpretations blind abstractions and implicit
play

On Quasi-Interpretations, Blind Abstractions and Implicit Complexity - PowerPoint PPT Presentation

On Quasi-Interpretations, Blind Abstractions and Implicit Complexity Patrick Baillot Ugo Dal Lago Jean-Yves Moyen LIPN Paris 13, Univ. di Bologna/Paris 7 LIPN Paris 13 journ ees GdT LAC, Chamb ery, 9/2/2007 (projet ANR NOCoST) <


  1. On Quasi-Interpretations, Blind Abstractions and Implicit Complexity Patrick Baillot Ugo Dal Lago Jean-Yves Moyen LIPN Paris 13, Univ. di Bologna/Paris 7 LIPN Paris 13 journ´ ees GdT LAC, Chamb´ ery, 9/2/2007 (projet ANR NOCoST) < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.1/24

  2. From termination to complexity? termination is widely studied: polynomial interpretations, RPO, . . . however in practice computational complexity often relevant (eg for feasible termination) ⇒ how to guarantee/verify that a program is polynomial time (Ptime) ? Implicit computational complexity (ICC) : study calculi with intrinsic complexity properties (e.g. Ptime) , primitive recursive programs typed lambda-calculi, linear logic TRS Leivant, Jones, Girard . . . < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.2/24

  3. Implicit Computational Complexity and intensional expressivity Typical ICC results: any program of the class C computes a Ptime function, and any Ptime function can be computed by at least one program of C . (using a simulation of Ptime Turing machines) Intensional expressivity : which algorithmic patterns are available in an ICC system ? TRS: advantage of general recursion, pattern-matching Term rewriting (TRS) and Quasi-interpretations (Bonfante - Marion -Moyen): an easy-to-use and quite general ICC system idea: combine 2 ingredients RPO + size argument (quasi-interpretation) < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.3/24

  4. how to study the intensional expressivity of ICC calculi? examples we propose to consider program transformations or abstractions, to find out necessary conditions on programs here we study the Quasi-interpretations (QI) approach (P-criterion of Marion et al. ), and define for that blind abstraction of programs. this way we provide a necessary condition on programs meeting the P-criterion on QI. Applications: property of Bellantoni-Cook programs, extensions of the P-criterion. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.4/24

  5. Outline 1. Background: TRS and Quasi-interpretations. P-criterion ([BMM06]). 2. Blind abstractions. Blindly polytime programs. 3. P-criterion and blind abstractions. application: Bellantoni-Cook; extensions of P-criterion. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.5/24

  6. 1. Programs as TRS Definition 1 (Syntax) Terms and equations are defined by: ( values ) T ( C ) ∋ v ::= c ( v 1 , · · · , v n ) ( terms ) T ( C , F , X ) ∋ t ::= x | c ( t 1 , · · · , t n ) | f ( t 1 , · · · , t n ) ( patterns ) P ∋ p ::= x | c ( p 1 , · · · , p n ) ( equations ) D ∋ d ::= f ( p 1 , · · · , p n ) → t where x ∈ X , f ∈ F , and c ∈ C . A program: f = �X , C , F , E� where E is a set of equations in D . In equation f ( � p ) → t , each variable in t also appears in f ( � p ) . programs are constructor (term-rewriting) systems. in general, we don’t require determinism condition < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.6/24

  7. Operational semantics Call-by-value semantics: c ∈ C t i ↓ v i (Constructor) c ( t 1 , · · · , t n ) ↓ c ( v 1 , · · · , v n ) ∃ j, t j / ∈ T ( C ) t i ↓ v i f ( v 1 , · · · , v n ) ↓ v (Split) f ( t 1 , · · · , t n ) ↓ v f ( p 1 , · · · , p n ) → r ∈ E σ ∈ S p i σ = v i rσ ↓ v (Function) f ( v 1 , · · · , v n ) ↓ v Call-by-value semantics with cache: corresponds to programming with memoisation: avoid recomputing of values„ judgements � C, t � , where C is a cache , ( update ) and ( read ) rules. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.7/24

  8. Example of program f ( s 0 s i x ) → append ( f ( s 1 x ) , f ( s 1 x )) i = 0 , 1 f ( s 1 x ) → x f ( nil ) → nil append ( s i x, y ) → s i append ( x, y ) append ( nil , y ) → y π is the following derivation: nil ↓ nil nil ↓ nil nil ↓ nil f ( s 1 nil ) ↓ nil f ( s 1 nil ) ↓ nil append ( nil , nil ) ↓ nil append ( f ( s 1 nil ) , f ( s 1 nil )) ↓ nil f ( s 0 s 1 nil ) ↓ nil < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.8/24

  9. Call trees Call trees are a tool to analyse the execution of programs. Let π : t ↓ v be a reduction proof. Its call trees is the set of trees Θ π obtained by only keeping terms f ( � w ) in conclusions of (Function) rules. In our example program, the following is a call-tree for � f , s 0 s 1 nil � : � f , s 0 s 1 nil � � f , s 1 nil � � f , s 1 nil � � append , nil , nil � � g , nil � � g , nil � for the Call-by-value semantics with cache : also a notion of Call dag , obtained by identifying some nodes in the call tree. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.9/24

  10. Termination orderings precedence � F : preorder over F � C . ≈ F associated equivalence relation. separating precedence: constructors � F functions fair precedence: for constructors c , d with same arity, c ≈ F d , strict precedence: distinct constructors not comparable for � F . product extension of an ordering � : extension over tuples such that ( m 1 , · · · , m k ) ≺ p ( n 1 , · · · , n k ) iff (i) ∀ i, m i � n i and (ii) ∃ j such that m j ≺ n j . < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.10/24

  11. Termination orderings (continued) s = t i or s ≺ rpo t i ∀ i s i ≺ rpo f ( t 1 , · · · , t n ) g ≺ F f f ∈ F S C f , g ∈ F S C s ≺ rpo f ( . . . , t i , . . . ) g ( s 1 , · · · , s m ) ≺ rpo f ( t 1 , · · · , t n ) ( s 1 , · · · , s n ) ≺ p rpo ( t 1 , · · · , t n ) ∀ i s i ≺ rpo f ( t 1 , · · · , t n ) f ≈ F g f , g ∈ F S C g ( s 1 , · · · , s n ) ≺ rpo f ( t 1 , · · · , t n ) PPO: recursive path ordering ≺ rpo obtained with separating precedence EPPO: recursive path ordering ≺ rpo obtained with fair precedence < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.11/24

  12. Quasi-interpretations idea: provide upper bound on size of intermediate values during computation Let b ∈ F � C with arity n . Its assignment is a function � b � : ( R ) n → R such that: (Subterm) � b � ( X 1 , · · · , X n ) ≥ X i for all 1 ≤ i ≤ n . (Weak Monotonicity) � b � is increasing (not strictly) wrt each variable. (Additivity) � c � ( X 1 , · · · , X n ) ≥ � n i =1 X i + a if c ∈ C (where a ≥ 1 ). (Polynomial) � b � is bounded by a polynomial. Assignments � . � are extended to terms canonically. If t has n variables, then � t � : ( R ) n → R . we denote by ≥ the extensional order on functions. if t is a subterm of s , then � s � ≥ � t � < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.12/24

  13. P-criterion Definition 2 (Quasi-interpretation) An assignment � . � of a program is a quasi-interpretation (QI) if for each equation l → r , � l � ≥ � r � . Ex: � s 0 � ( X ) = � s 1 � ( X ) = X + 1 , � append � ( X, Y ) = X + Y . For inference, QI can be searched in a given function algebra, e.g. MaxPoly. Theorem 1 (P-criterion, Bonfante-Marion-Moyen) The set of functions computable by programs that (i) terminate by PPO, and (ii) admit a QI, is exactly FP . To execute the program with a polynomial bound, one must use a call-by-value semantics with cache. Ex: insertion sort, longest-common-subsequence. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.13/24

  14. 2. Blind abstractions Idea: study properties of the program by considering an abstraction. blind abstraction : all constructors of same arity are collapsed into one, we associate to a program f another one f , which is not deterministic. More precisely, target language: variables: X = X , function symbols: F = { f / f ∈ F} . constructor symbols: the map ( . ) on constructor symbols defined by: c = d iff c and d have the same arity. Then C = { c / c ∈ C} . The blinding map is then the natural map B : T ( C , F , X ) − → T ( C , F , X ) . Ex: binary lists built over { s 0 , s 1 , nil } mapped to tally integers, built from { s , 0 } , where s 0 = s 1 = s and nil = 0 . < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.14/24

  15. Blinding and complexity definitions Definition 3 (Strongly polytime) A (possibly) non-deterministic program f is strongly polytime if there exists a polynomial p f : N n → N such that for every sequence v 1 , · · · , v n and any π : f ( v 1 , · · · , v n ) ↓ u , it holds that | π | ≤ p f ( v 1 , . . . , v n ) . Definition 4 (Blindly polytime) A program f is blindly polytime if its blind abstraction f is strongly polytime. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.15/24

  16. Blindly polytime programs Observe that: Fact 1 If a program f is blindly polytime, then it is polytime in the call-by-value semantics. For instance, the Quicksort algorithm is blindly polytime. Remark: say an error is replacement of a constructor by a constructor of same arity blindly Ptime program= program remaining Ptime, no matter the number of errors occurring during execution. < > - + On Quasi-Interpretations, Blind Abstractionsand Implicit Complexity – p.16/24

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend