1 / 25

Coq and Nuprl Wojciech Moczydłowski

Coq and Nuprl Wojciech Moczydłowski. History World, type system Inductive types in Coq Extraction in Coq Other features of Coq. Coq Lambda calculus with types. Church, Curry, Howard, Girard, Huet, Coquand, Paulin-Mohring. Nuprl Type theory. Russell, Church, Curry, Howard,

marion
Download Presentation

Coq and Nuprl Wojciech Moczydłowski

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Coq and NuprlWojciech Moczydłowski • History • World, type system • Inductive types in Coq • Extraction in Coq • Other features of Coq

  2. Coq Lambda calculus with types. Church, Curry, Howard, Girard, Huet, Coquand, Paulin-Mohring. Nuprl Type theory. Russell, Church, Curry, Howard, Martin-Löf, Nuprl group. History

  3. Coq A Calculus of Inductive Constructions. Not assuming stance on FOM. Nuprl A foundational system, intented to represent constructive mathematics. Ideology Propositions-as-types principle

  4. Coq t : T t is of type T Nuprl s=t : T s is equal to t in type T T=S types T and S are equal Type system: Judgements

  5. Coq 1. Syntactic - proof-theoretic methods, strong normalization. 2. Semantic - models in (domain,set, category) theory. Nuprl 1. Syntactic - no strong normalization. 2. Semantic - Allen, Howe, Moran. Domain models for Martin-Löf’s type theory Consistency

  6. Coq Only typing rules. Core λC has <10 rules (PTS presentation). Inductive definitions - probably about <20 more. Extraction - ??? Reduction - ??? Marketing Nuprl Judgements + extraction terms + tactics. More than 100 rules. Rules

  7. World Coq (8.0) Set, Typei predicative Prop impredicative Note: In Coq 7.2 Set impredicative as well Nuprl Completely predicative

  8. Type system Type system Coq Closed. No really new types can be added. Nuprl Open-ended. New types can and are being added.

  9. Logic Logic Coq Only universal quantifier built-in. Rest defined using inductive types (including equality). Can also use Girard’s ideas. Nuprl All the logic built-in.

  10. Coq - inductive definitions • Very generic mechanism. • Used to define logic, natural numbers, lists, inductive predicates and others... • To each inductive definition correspond generated principles of induction and recursion.

  11. Coq - inductive types Logic Coq - inductive types Logic Inductive False := . Inductive True := I : True. Inductive and (A B : Prop) : Prop := conj A  B  A /\ B. Inductive or (A B : Prop) : Prop := or_introl : A  A \/ B | or_intror : B  A \/ B.

  12. Coq Another inductive type. Nuprl Built-in construct. Natural numbers

  13. Coq - inductive types Natural numbers Inductive nat := 0 : nat | S : nat  nat. Recursion:  P : nat  Set, P 0  ( n : nat. P n  P (S n))   n : nat. P n

  14. Coq - inductive types Natural numbers Inductive nat := 0 : nat | S : nat  nat. Induction:  P : nat  Prop, P 0  ( n : nat. P n  P (S n))   n : nat. P n

  15. Coq - inductive types List Inductive List (A:Set) : Set := Nil : List A | Cons : A  List A  List A Recursion: A  P : List A  Set. P (Nil A)  ( a : A, l : List A. P l  P (a::l))   l : List A.

  16. Coq - inductive types List Inductive List (A:Set) : Set := Nil : List A | Cons : A  List A  List A Induction: A  P : List A  Prop. P (Nil A)  ( a : A, l : List A. P l  P (a::l))   l : List A.

  17. Coq - inductive types <= Inductive le (n:nat) : nat  Prop := le_n : le n n |   le_S : m:nat, le n m  le n (S m).

  18. Coq - extraction Coq - extraction • External mechanism. • Proof irrelevance - Prop doesn’t contain computational content and isn’t supposed to. Set and Type hierarchy, however, do.

  19. Coq - extraction Coq - extraction • Ind. ex (A : x) (P:A  y) : z • ex_intro : x : A, P x  ex A P. • (x, y, z) = (Type, Prop, Prop) • No computational content • Notation: exists x : A, P x

  20. Coq - extraction Coq - extraction • Ind. ex (A : x) (P:A  y) : z • ex_intro : x : A, P x  ex A P. • (x, y, z) = (Set, Prop, Set) • Witness is extracted, proof not. • Notation: { x : A | P x }

  21. Coq - extraction Coq - extraction • Ind. ex (A : x) (P:A  y) : z • ex_intro : x : A, P x  ex A P. • (x, y, z) = (Set, Set, Set) • Everything is extracted. • Isomorphic to  type. • Notation: { x : A & P x }

  22. Programming language Programming language Coq Not very strong, due to strong normalization. Restrictions on possible programs - structural recursion. Nuprl Full power of Y combinator.

  23. Environment Environment Coq Text-mode interface for user interaction. External graphic environment is being developed. Nuprl Sophisticated programming environment, integrated editor, library management etc.

  24. Installation and system requirements Installation and system requirements Coq Installation: easy. Sys.req: Modest. Systems: Windows, Unix (Linux/ MacOS/ Solaris...). Nuprl Installation: hard. Sys.req: High. Systems: Unix

  25. Coq - other informations Coq - other informations • User base: over 250 people subscribed to the mailing list. • New book: Coq’Art (2004). • Website: coq.inria.fr • Documentation tools. • Why - a tool for proving correctness of imperative programs. Can use Coq as a backend prover.

More Related