Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Simple formalization of type of natural deduction proofs

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Simple formalization of type of natural deduction proofs


Chronological Thread 
  • From: Kevin Sullivan <sullivan.kevinj AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Simple formalization of type of natural deduction proofs
  • Date: Mon, 19 Feb 2018 09:50:39 -0500
  • Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=sullivan.kevinj AT gmail.com; spf=Pass smtp.mailfrom=sullivan.kevinj AT gmail.com; spf=None smtp.helo=postmaster AT mail-wr0-f171.google.com
  • Ironport-phdr: 9a23:7VzS2xAy+WL9TKsiDljbUyQJP3N1i/DPJgcQr6AfoPdwSPv9o8bcNUDSrc9gkEXOFd2Cra4c0KyO6+jJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglUijexe69+IAmrpgjNq8cahpdvJLwswRXTuHtIfOpWxWJsJV2Nmhv3+9m98p1+/SlOovwt78FPX7n0cKQ+VrxYES8pM3sp683xtBnMVhWA630BWWgLiBVIAgzF7BbnXpfttybxq+Rw1DWGMcDwULs5Xymp4aV2Rx/ykCoINTA5/mHZhMJzkaxVvg6uqgdlzILIeoyYLuZycr/fcN4cWGFPXtxRVytEAo6kaoUAEfQBPeder4LgulUOsB++BQ2tBOPx0DBIgGL90Koh0+Q8FQHG2A0gH8wUv3TSttn1N7kdUf60zKnOzzXOdPxW2TLn54jJdhAtu+2DXbV1ccfIz0QkCg3LjlKVqYP/PjOV0PwAs3SV7uV+UeKvhXQrqwZrojigwMonl4rHhpoNx1za6Sl0xJw5KN64RUJhfNKoDphduzuHO4Z0X88vRXxjtjwgxb0co5G7eTAHyJQ5yB7bbPyKa42I7QjiVOaVODt5imhldK6mixa87EStyPDwWtO70FZNqSpFnd3MuW4X2xPP7ciHT+Nx/kan2TmRywDe8v9ILVwwmKbBKJMswqQ8mocNvUnABCP6hUf7gLKOekUh4Oeo6uDnYrv8pp+bMo95khr+Mrkqmsy7AOQ4LBIBX26B9eS/yrLj40z5QLNIjvAtnanZtYrVJcUfpqKjHwBV1YMj5w6lDzi6yNQYgWUHLFVddR2biIjpIkjCL+z8DfeimFuhiyxrxvDDPr35GJrBNHnDkLH7fbZ88UFQ0gQzzcoMr65TX7oGObf4XlL7nN3eFB4wdQKukMj9D9Ao9Y4AWGTHObKdNKLMuFnAsvkyJ+2NeoYT/jXwNfkj5dbhiHY4nRkWeqz/jshfU2yxAvkzexbRWnHrmNpUST5b7Dp7d/TjjRi5aRAWYn+zW6wm4TRiUdCpCI7CQsamh7nThX7nTK0TXXhPDxW3KVmtb5+NAq5eZyebI8snmTsBB+D4Ft0RkCq2vQq/8IJJa+rZ/ipC68Dm3dlxovLJzVQ8rGMtScua1G6JQid/mWZaHzI=

Another way to ask the question: Are there some good pedagogical explications out there of formalizations of natural deduction proof systems, including "-> introduction" as an inference rule, appropriate for early undergraduates, not advanced undergrads or graduate students? And thank you, Stefan, for pointing to the cool "game". I'll give it a go. --Kevin

On Mon, Feb 19, 2018 at 9:16 AM, Kevin Sullivan <sullivan.kevinj AT gmail.com> wrote:
 I'm looking for a simplest way to teach my early undergraduate students about natural deduction and/or sequent calculus proof objects without having to get into lambda terms and type systems.

The following "POPL tutorial" suggests a standard solution:  formalize proofs  as values of an inductive type, where the constructors mirror the rules of inference.


The rule for implication introduction says (naturally enough) that if you have a function from proofs of A to proofs of B, you can construct a proof of (Impl A B).

A straightforward translation of this into Coq, as copied right below this sentence, results in a non-positivity error for the encoding of this inference rule.

/* variables */
Inductive var := mk_var: nat -> var.

/* propositions in my minimal propositional logic */

Inductive prop :=
   | atom: var -> prop
   | and: prop -> prop -> prop
   | impl: prop -> prop -> prop.

/* proof rules */

Inductive proof: prop -> Type  :=
  | axiom: forall A: prop, proof A
  | andIntro: forall A B: prop, proof A -> proof B -> proof (and A B)
  | andElimL: forall A B: prop, proof (and A B) -> proof A
  | andElimR: forall A B: prop, proof (and A B) -> proof B
  | implElim: forall A B: prop, proof A -> proof (impl A B) -> proof B
  | implIntro: forall A B: prop, (proof A -> proof B) -> proof (impl A B). (* oops!!! *)

What would be the canonical way to represent the same ideas in Coq in a way that works?

Again, the aim is a super-straightforward pedagogical explication of rules of natural deduction (or sequent calculus), for a propositional logic only, with the ability to "play around" by building proof terms by explicit application of introduction and elimination inference rules. 

Kevin

 




Archive powered by MHonArc 2.6.18.

Top of Page