Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Just for fun: From Coq to a paraconsistent poof assistant

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Just for fun: From Coq to a paraconsistent poof assistant


Chronological Thread 
  • From: Jason Gross <jasongross9 AT gmail.com>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Just for fun: From Coq to a paraconsistent poof assistant
  • Date: Thu, 28 Mar 2019 23:48:39 -0400
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jasongross9 AT gmail.com; spf=Pass smtp.mailfrom=jasongross9 AT gmail.com; spf=None smtp.helo=postmaster AT mail-ed1-f48.google.com
  • Ironport-phdr: 9a23:CVBk/R13+CdolyVosmDT+DRfVm0co7zxezQtwd8Zse0WLvad9pjvdHbS+e9qxAeQG9mCs7QU1qGL7ejJYi8p2d65qncMcZhBBVcuqP49uEgeOvODElDxN/XwbiY3T4xoXV5h+GynYwAOQJ6tL1LdrWev4jEMBx7xKRR6JvjvGo7Vks+7y/2+94fcbglVmDaxe7B/IRW5oQjRt8QdnJdvJLs2xhbVuHVDZv5YxXlvJVKdnhb84tm/8Zt++ClOuPwv6tBNX7zic6s3UbJXAjImM3so5MLwrhnMURGP5noHXWoIlBdDHhXI4wv7Xpf1tSv6q/Z91SyHNsD4Ubw4RTKv5LptRRT1iikIKiQ5/XnYhcx+jq1VoByvqR9izYDKfI6YL+Bxcr/HcN4AWWZNQsRcWipcCY28dYsPCO8BMP5coYbnvFsOqh2+DhStCuP1zT9InWT21rA93uQjCw7GxwsgH9QBsHTOq9X1L7wSXOSuwanHyDXMdfJW2TPn5IfUdRAhpOiBULRtesTS0UkiDx3JgkmUpID/PD6Y1v4Bv3aH4+djT+6ihG0qpgdsqTa13MgskJPGhocNx1DE6yp5xIE1KMW9SEFhYN6kFIJcuD+HOIdrW88iTW5ltSUgxr0Jvp67eycKyJA5yBLFd/OHdI2I7griVOaXPzh4mGpodKyjixu260Stye3xWtOq3FpWrSdJiNbBu3MV2xzW8MeHS/99/km72TaI0gDe8uNELlovlarcLZ4hzaQwlp0IsUTYGiL7g0r2jKqMeUUl/uik8fjoYrLjppOELY97lhn+Mrgymsy4Gek3Lg8OX3GC9eug0L3j4Fb2Ta5Rjvw2l6nZqIrVKd4apq6/GQ9V05ws5wyxDze8g5wkmiwMK0sAcxaahaDoPUvPKbb2F6SRmVOpxRVi3PfAdpL7BY7WZizBmazme7ln7FVHmSI8yNle49RfDbRXc6G7YVP4qNGNVkxxCAez2euyUIwshLNbYnqGB+qiCI2XtFaJ4uw1JOzVPd0avT/8L74u4Pu81CZly29YRrGg2N4sUF79Bu5vehzLbn/lg9NHGmAP7FJnEb7azWaaWDsWXE6cGqIx4jZhVdCjBIbHA42h2fmPgHf9EZpRaWRLTFuLFCWweg==

What are your plans for the Church encoding of False := forall A : Prop, A?

I think you can also get False_ind by defining Fin : nat -> Set and then doing a match on an element of Fin 0:
(fun A x => match x in Fin n return match n with O => A | _ => True end with <each ctor> => I end) : forall A, Fin 0 -> A

On Thu, Mar 28, 2019, 23:38 Talia Ringer <tringer AT cs.washington.edu> wrote:
I anticipate being bored next week, and I'd like a quick, fun, and interesting side project to fill my time (and I'm familiar enough with the Coq internals that playing with the code can meet these criteria). I think, if so tasked, I could write a paraconsistent proof assistant from scratch. But what if I wanted to fork Coq and trim it down to a paraconsistent proof assistant? What is the minimal set of changes I would need to make?

Clearly, I would need for the principle of explosion to no longer hold, which means that False_ind and similar terms should no longer type-check. This means that empty pattern matching ought to be impossible, since in Coq:

False_ind :=
  fun (P : Prop) (f : False) => match f return P with end
: forall (P : Prop), False -> P.

It looks like in so doing, I would make disjunctive syllogism (forall A B, or A B -> ~ A -> B) impossible to prove, since I think all proofs of this in Coq must go through a term like False_ind. Am I wrong?

If this makes disjunctive syllogism unprovable, then I would not need to remove or_introl or or_intror. Does this mean that I could keep inductive types? Or would they cause unforeseen problems?

What about other features that Coq has?

Best,

Talia





Archive powered by MHonArc 2.6.18.

Top of Page