program extraction in computable analysis
play

Program extraction in computable analysis Ulrich Berger - Swansea - PowerPoint PPT Presentation

Program extraction in computable analysis Ulrich Berger - Swansea Computability in Europe 2011 Sofia, Bulgaria 1 / 39 Outline Introduction Program extraction in computable analysis Memoized functionals Conclusion 2 / 39 Introduction


  1. Program extraction in computable analysis Ulrich Berger - Swansea Computability in Europe 2011 Sofia, Bulgaria 1 / 39

  2. Outline Introduction Program extraction in computable analysis Memoized functionals Conclusion 2 / 39

  3. Introduction Program extraction in computable analysis Memoized functionals Conclusion 3 / 39

  4. The Curry-Howard correspondence (or Brouwer-Heyting-Kolmogorov interpretation) Formulas correspond to data types Proofs correspond to programs A ∨ B disjoint sum A ∧ B cartesian product A → B function space ∃ x A (dependent) cartesian product ∀ x A (dependent) function space 4 / 39

  5. The Curry-Howard correspondence (or Brouwer-Heyting-Kolmogorov interpretation) Formulas correspond to data types Proofs correspond to programs A ∨ B disjoint sum A ∧ B cartesian product A → B function space ∃ x A (dependent) cartesian product ∀ x A (dependent) function space A proof of a formula A corresponds to a program constructing an element of A . 4 / 39

  6. The Curry-Howard correspondence (or Brouwer-Heyting-Kolmogorov interpretation) Formulas correspond to data types Proofs correspond to programs A ∨ B disjoint sum A ∧ B cartesian product A → B function space ∃ x A (dependent) cartesian product ∀ x A (dependent) function space A proof of a formula A corresponds to a program constructing an element of A . ◮ What is a function? ◮ What if the quantified x ranges over abstract objects? ◮ How do we interpret logical axioms, e.g. A ∨ ¬ A ? ◮ How do we interpret maths axioms, e.g. induction, choice? ◮ Why is it interesting and useful? 4 / 39

  7. Why Curry-Howard is interesting and useful Foundations Constructive foundation of Mathematics (Brouwer, Heyting, Kolmogorov, G¨ odel, Kleene, Kreisel, Martin-L¨ of). Properties of logical and mathematical systems (Realizability ⇒ existence and disjunction property; Dialectica Interpretation ⇒ consistency) 5 / 39

  8. Why Curry-Howard is interesting and useful Foundations Constructive foundation of Mathematics (Brouwer, Heyting, Kolmogorov, G¨ odel, Kleene, Kreisel, Martin-L¨ of). Properties of logical and mathematical systems (Realizability ⇒ existence and disjunction property; Dialectica Interpretation ⇒ consistency) Programming Program extraction (Minlog, Coq, Isabelle, Agda). In Minlog, realizability is used to automatically extract from a proof a program and its correctness proof. 5 / 39

  9. Why Curry-Howard is interesting and useful Foundations Constructive foundation of Mathematics (Brouwer, Heyting, Kolmogorov, G¨ odel, Kleene, Kreisel, Martin-L¨ of). Properties of logical and mathematical systems (Realizability ⇒ existence and disjunction property; Dialectica Interpretation ⇒ consistency) Programming Program extraction (Minlog, Coq, Isabelle, Agda). In Minlog, realizability is used to automatically extract from a proof a program and its correctness proof. Mathematics Approximation-, fixedpoint-, ergodic-theory (Kohlenbach, Avigad, . . . , using DI). The study of function spaces led to new developments in computability theory, topology, domain theory. The problem of C-H interpreting classical choice axioms has led to new recursion principles such as bar recursion and products of selection functions (see recent work by Martin Escardo and Paulo Oliva). 5 / 39

  10. What is a function and when is it a proof of an implication? BHK-interpretation: A proof of A → B is a function f mapping proofs of A to proofs of B . 6 / 39

  11. What is a function and when is it a proof of an implication? BHK-interpretation: A proof of A → B is a function f mapping proofs of A to proofs of B . ◮ f should be computable. What does this mean if A itself consists of functions? ( ⇒ computability in higher types) ◮ Don’t we need a proof that f does it’s job? (circularity!) 6 / 39

  12. Realizing an implication Realizability (Kleene, Kreisel) f r ( A → B ) ≡ ∀ a ( a r A → f ( a ) r B ) 7 / 39

  13. Realizing an implication Realizability (Kleene, Kreisel) f r ( A → B ) ≡ ∀ a ( a r A → f ( a ) r B ) Dialectica Interpretation (G¨ odel) ( f , g ) r ( A → B ) ≡ ∀ a , v ( a r g ( a , v ) A → f ( a ) r v B ) where a r A ≡ ∀ u ( a r u A ) and b r B ≡ ∀ v ( b r v B ) are purely universal formulas. The idea is that for the conclusion, f ( a ) r v B , the premise, ∀ u ( a r u A ) is used for finitely many u only (continuity argument), in fact, a single u = g ( a , v ) suffices. 7 / 39

  14. Realizing an implication Realizability (Kleene, Kreisel) f r ( A → B ) ≡ ∀ a ( a r A → f ( a ) r B ) Dialectica Interpretation (G¨ odel) ( f , g ) r ( A → B ) ≡ ∀ a , v ( a r g ( a , v ) A → f ( a ) r v B ) where a r A ≡ ∀ u ( a r u A ) and b r B ≡ ∀ v ( b r v B ) are purely universal formulas. The idea is that for the conclusion, f ( a ) r v B , the premise, ∀ u ( a r u A ) is used for finitely many u only (continuity argument), in fact, a single u = g ( a , v ) suffices. Both interpretations extract from a proof of A a term M and a proof of M r A (Soundness Theorem). In the DI the proof of M r A takes place in a quantifier free system! 7 / 39

  15. Realizing quantifiers Traditionally: ( x , a ) r ∃ x A ( x ) ≡ a r A ( x ) f r ∀ x A ( x ) ≡ ∀ x ( f ( x ) r A ( x )) 8 / 39

  16. Realizing quantifiers Traditionally: ( x , a ) r ∃ x A ( x ) ≡ a r A ( x ) f r ∀ x A ( x ) ≡ ∀ x ( f ( x ) r A ( x )) x may range over abstract object (reals, real functions, . . . ). This seems to require a realizing programming language with data types for such abstract objects. 8 / 39

  17. Realizing quantifiers Traditionally: ( x , a ) r ∃ x A ( x ) ≡ a r A ( x ) f r ∀ x A ( x ) ≡ ∀ x ( f ( x ) r A ( x )) x may range over abstract object (reals, real functions, . . . ). This seems to require a realizing programming language with data types for such abstract objects. Alternative: uniform realization of quantifiers a r ∃ x A ( x ) ≡ ∃ x ( a r A ( x )) a r ∀ x A ( x ) ≡ ∀ x ( a r A ( x )) 8 / 39

  18. Realizing quantifiers Traditionally: ( x , a ) r ∃ x A ( x ) ≡ a r A ( x ) f r ∀ x A ( x ) ≡ ∀ x ( f ( x ) r A ( x )) x may range over abstract object (reals, real functions, . . . ). This seems to require a realizing programming language with data types for such abstract objects. Alternative: uniform realization of quantifiers a r ∃ x A ( x ) ≡ ∃ x ( a r A ( x )) a r ∀ x A ( x ) ≡ ∀ x ( a r A ( x )) For concrete objects we may relativize the quantifiers: ∀ x ( N ( x ) → ∃ y ( N ( y ) ∧ ( x = 2 y ∨ x = 2 y + 1))) where N is defined such that n r N ( x ) means that n is a representation of the natural number x . The extracted program computes integer division by 2. 8 / 39

  19. Program extraction and the law of excluded middle Realizing, say, ∀ x ( N ( x ) → A ( x ) ∨ ¬ A ( x )) would mean to construct a program computing for every (representation of) a natural number x a realizer of A ( x ) or a realizer or ¬ A ( x ). This is impossible, in general. 9 / 39

  20. Program extraction and the law of excluded middle Realizing, say, ∀ x ( N ( x ) → A ( x ) ∨ ¬ A ( x )) would mean to construct a program computing for every (representation of) a natural number x a realizer of A ( x ) or a realizer or ¬ A ( x ). This is impossible, in general. But, one can eliminate LEM in proofs of formulas of the form ∀ x ( N ( x ) → ∃ y ( N ( y ) ∧ A 0 ( x , y )) where A 0 ( x , y ) is decidable, using G¨ odel’s negative translation and the Friedman/Dragalin A -translation. 9 / 39

  21. Other approaches to program extraction from classical proofs ◮ ǫ -substitution calculus (Hilbert). ◮ Interpretation of ¬¬ A → A by continuations (Felleisen). ◮ Direct computational interpretation of classical sequent calculus ( λµ -calculus, Parigot). ◮ Interpretation of restricted forms of LEM by learning based realizability (Berardi, Aschieri) ◮ Realizability interpretation of classical systems via stacks and processes (Krivine). 10 / 39

  22. Interpreting induction Induction on natural numbers A (0) ∧ ∀ x ( A ( x ) → A ( x + 1)) → ∀ x ( N ( x ) → A ( x )) is a special case of induction on an inductively defined predicate: 11 / 39

  23. Interpreting induction Induction on natural numbers A (0) ∧ ∀ x ( A ( x ) → A ( x + 1)) → ∀ x ( N ( x ) → A ( x )) is a special case of induction on an inductively defined predicate: Set Φ( X ) := { 0 } ∪ { x + 1 | x ∈ X } , then N = µ Φ = µ X . Φ( X ) 11 / 39

  24. Interpreting induction Induction on natural numbers A (0) ∧ ∀ x ( A ( x ) → A ( x + 1)) → ∀ x ( N ( x ) → A ( x )) is a special case of induction on an inductively defined predicate: Set Φ( X ) := { 0 } ∪ { x + 1 | x ∈ X } , then N = µ Φ = µ X . Φ( X ) In general, one has for a monotone predicate transformer Φ an induction schema for its least fixed point µ Φ: Φ( P ) ⊆ P → µ Φ ⊆ P The data type associated with µ Φ is the initial algebra In ϕ : ϕ ( µϕ ) → µϕ of a functor ϕ derived from Φ. The induction scheme is realized by the iterator It ϕ that iterates any “step function” (i.e. ϕ -algebra) f : ϕ ( α ) → α to an algebra morphism It ϕ ( f ) : µϕ → α with computation rule (i.e. morphism equation) It ϕ ( f ) In ϕ ( m ) = f ( map ϕ ( It ϕ ( f ))( m )) 11 / 39

  25. Example: Natural numbers Recall N = µ Φ where Φ( X ) = { 0 } ∪ { x + 1 | x ∈ X } = { y | y = 0 ∨ ∃ x ( y = x + 1 ∧ x ∈ X ) } 12 / 39

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