Contributing to Higher Order Complexity: Outcomes and Likely Applications Hugo Férée September 26th, 2019
Summary Motivation, or How Did I Get Into Higher-order Complexity? Computation as a Dialogue and How It Helps with Complexity And now what? 2/38
Motivation, or How Did I Get Into Higher-order Complexity?
Type-two Theory of Effectivity To compute over a space X we equip it with a surjection δ : R ֒ → X , where R is a space over which we already know how to compute. f → X ′ − X ↑ δ ↑ δ ′ g R − → R 3/38
Type-two Theory of Effectivity To compute over a space X we equip it with a surjection δ : R ֒ → X , where R is a space over which we already know how to compute. For example: • R = Σ ∗ allows to represent discrete domains (integers, lists, graphs, etc.) but not uncountable ones • R = Σ → Σ ∗ is enough to represent R , C [ 0 , 1 ] , etc . "correctly". 3/38
Second-order Computations In order to compute over Σ ∗ → Σ ∗ , we use Oracle Turing Machines: f w f ( w ) M Definition F : (Σ ∗ → Σ ∗ ) → Σ ∗ is computed by an oracle Turing machine M if for any oracle f : Σ ∗ → Σ ∗ , M f computes F ( f ) . 4/38
Second-Order Complexity Definition (Time complexity) The complexity of a machine is an upper bound on its computation time w.r.t the size of its input. ✓ size of a finite word ? size of an order 1 function 5/38
Second-Order Complexity Definition (Time complexity) The complexity of a machine is an upper bound on its computation time w.r.t the size of its input. ✓ size of a finite word ? size of an order 1 function Definition (Size of a function) The size of f : Σ ∗ → Σ ∗ is | f | : N → N : | f | ( n ) = max | x |≤ n | f ( x ) | . 5/38
Second-Order Polynomial Time Definition (Second order polynomials) P := c | X | Y � P � | P + P | P × P Example P ( X , Y ) = ( Y � X × Y � X + 1 �� ) 2 Definition ( fptime 2 ) Second order polynomial time computable function = computable by an OTM in second order polynomial time. Actually, we can define many complexity classes: np 2 , #p 2 , ... and the corresponding classes in analysis: np R , #p R , np C [ 0 , 1 ] , #p C [ 0 , 1 ] , ... 6/38
Application: Complexity for Functions over Streams Simple coinductive datatypes can be seen as first-order functions (watch out for details). Theorem (F., Hainry, Hoyrup, Péchoux 2010) The Implicit Computation Complexity technique called polynomial interpretations can be applied to lazy first-order rewriting systems with streams to characterise (a relevant notion of) polynomial time complexity. 7/38
Limits of First-order Representations Once again, R = Σ ∗ → Σ ∗ may not always be the right representation space: Theorem (F.-Hoyrup 2013) If X is a non- σ -compact polish space with an admissible representation, then no representation δ : (Σ ∗ → Σ ∗ ) ֒ → C [ X , R ] makes the complexity of the application function Ap : C [ X , R ] × X → R well-defined. Example TTE cannot express a meaningful notion of complexity for C [ C [ 0 , 1 ] , R ] . 8/38
Towards a "Higher-order Theory of Effectivity"? f → X ′ X − ↑ δ ↑ δ ′ g Σ ∗ → Σ ∗ − 9/38
Towards a "Higher-order Theory of Effectivity"? f X ′ X − → ↑ δ ↑ δ ′ g (Σ ∗ → Σ ∗ ) → (Σ ∗ → Σ ∗ ) − 9/38
Towards a "Higher-order Theory of Effectivity"? f X ′ X − → ↑ δ ↑ δ ′ g (Σ ∗ → Σ ∗ ) → Σ ∗ → (Σ ∗ → Σ ∗ ) → Σ ∗ − 9/38
Towards a "Higher-order Theory of Effectivity"? f → X ′ X − ↑ δ ↑ δ ′ g σ − → τ Definition (Higher-order types) τ, σ := N | σ ֒ → τ | σ × τ 9/38
Higher-order Computability? • Kleene schemata • Kleene associates • Berry-Curien sequential algorithms • ... • pcf (Scot, Plotkin) λ -calculus over N + fixpoint combinator. ✗ No simple underlying complexity notion. • bff (Cook, Urquhart) λ -calculus + fptime + R (2 nd -order bounded recursion) ✗ Defines only one complexity class (no exptime , etc.) ✗ Misses some intuitively feasible functionals. 10/38
Basic Feasible Functionals Definition (Cook & Urquhart (93), Mehlhorn (76)) bff = λ + fptime + R , with: x 0 if x = 0 R ( x 0 , F , B , x ) . t if | t | ≤ B ( x ) B ( x ) otherwise. where t = F ( x , R ( x 0 , F , B , ⌊ x 2 ⌋ )) . Theorem (Kapron & Cook 1996) bff 2 is the class of functions computed by an oracle Turing machine in second-order polynomial time. 11/38
Feasible � = ⇒ bff Example (Irwin, Kapron, Royer) ⇒ y = 2 x f x ( y ) = 1 ⇐ Φ , Ψ : (( N → N ) → N ) × N → N if F ( f x ) = F ( λ y . 0 ) 0 Φ( F , x ) = Φ ∈ bff 3 1 otherwise. 0 if F ( f x ) = F ( λ y . 0 ) Ψ( F , x ) = Ψ �∈ bff 3 2 x otherwise. but Ψ is "as feasible as" Φ . 12/38
Computation as a Dialogue and How It Helps with Complexity
Computation as a Dialogue (First-order functions) � machine, what is your value? 13/38
Computation as a Dialogue (First-order functions) � machine, what is your value? Machine is computing... 13/38
Computation as a Dialogue (First-order functions) � machine, what is your value? On which input? 13/38
Computation as a Dialogue (First-order functions) � machine, what is your value? On which input? Input is computing... 13/38
Computation as a Dialogue (First-order functions) � machine, what is your value? On which input? On input 10! 13/38
Computation as a Dialogue (First-order functions) � machine, what is your value? On which input? On input 10! Machine is computing... 13/38
Computation as a Dialogue (First-order functions) � machine, what is your value? On which input? On input 10! I’m worth 47 on that input! 13/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? Machine is computing... 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? Input is computing... 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? Machine is computing... 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? Input is computing... 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? Machine is computing... 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? What is f ( 4 ) ? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? What is f ( 4 ) ? Input is computing... 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? What is f ( 4 ) ? It’s 7. Anything else? 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? What is f ( 4 ) ? It’s 7. Anything else? . . . 14/38
Computation as a Dialogue (Second-order functions) � machine, what is your value? On which first-order input (let’s call it "f")? What do you want to know about f? What is f ( 1 ) ? It’s 2. Anything else? What is f ( 4 ) ? It’s 7. Anything else? . . . Machine is computing... 14/38
Recommend
More recommend