Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Observing "simplification of proofs as evaluation of programs" with Coq?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Observing "simplification of proofs as evaluation of programs" with Coq?


Chronological Thread 
  • From: Jean-Francois Monin <jean-francois.monin AT univ-grenoble-alpes.fr>
  • To: coq-club AT inria.fr
  • Subject: Re: [Coq-Club] Observing "simplification of proofs as evaluation of programs" with Coq?
  • Date: Wed, 27 Oct 2021 12:18:35 +0200
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jean-francois.monin AT univ-grenoble-alpes.fr; spf=Pass smtp.mailfrom=jean-francois.monin AT univ-grenoble-alpes.fr; spf=None smtp.helo=postmaster AT zm-mta-out-3.u-ga.fr
  • Ironport-data: A9a23:aTF7Q6K1f99IIFomFE+R3ZQlxSXFcZb7ZxGrkP8bfHDo0jMh32QFzWFNUW6EMvzZNDenc99/O9zjpk5UuZ/VyINqS1BcGVNFHysb85KdbTi6Bh6tZH3KdpWroHqKXqzyU/GYRCwPZiKa9kjF3oTJ9yEmjPjQHOWkUYYoBwgqLeNaYHd54f5cs7Vh6mJYqYDR7zKl4bsekeWHULOW82Ic3lYv1k62gEgHUMIeF98vlgdWifhj5DcynpSOZX4VDfnZw3DQGuG4EgMmLtsvwo1V/kuBl/ssIsGg17PnewgNX6KXZk6Tz3VfHaa46vRAjnVviOBka7xGMR8R1mvhc9NZkL2hsbSyRA4ve6PWkeIWVBhDVSR5O6xA0KLBIGb6vtaeyUrMd3apyvF2AVpwM5dwFuNfXjsXraxFQNwKRkvZ277tm+rTpvNXrs8kNYzgOJ4VkmpxyCnQS/cgW5HKBavQjeK0dh8k3pUVW6vKPp9BL2J7NkGYJUcSZAkDU8dm2rq82SzWbRtzrXS5pY4W6k7v1iplieC4aJ6NbrRmXu1HmwOdumuD+HnlR0pcKZmQwHyL6BqRaib0tXuTcOov+HeQrJaGQWF/x1D/zDUEUB6+vfD8jVOiHokZNgkb82wgt8DeMWTDosbVB3WFTLys53bwmOa818Un7gCTj6XO7gCeDGwJCzdFcNE98sEsLdDv/kHchMvnXFSDr5XMIU9wNd6oQfeaJC4UMyoNfyICSgEB7pzqpJk+lVTBVL6P1YbdYsLdQVnN/txBkMTya3j/QyLGO2VXMG0rWw6Rm6U=
  • Ironport-hdrordr: A9a23:XJrVWqx9UgPFFyW0i/DyKrPwFr1zdoMgy1knxilNoHtuA66lfqGV7ZcmPHrP41wssR4b9OxoR5PwJ080maQY3WBpB8bHYOC+ghrOEGgB1+XfKkzbexEWn9Q1vZuIGJIeNDSfNzdHZM/BkXCF+9FM+qjjzJyV

Hello,

Here is a simple example.

Inductive even : nat -> Prop :=
| E0 : even 0
| E2 : forall n, even n -> even (S (S n)).

Definition ev2 : even 2 := E2 0 E0.
Definition ev4 : even 4 := E2 2 ev2.

(* An explicit proof term for the following *)
Definition even_plus : forall n m, even n -> even m -> even (n + m) :=
fun n m evn evm =>
(fix fxp n (e : even n) {struct e} : even(n+m) :=
match e in even n return even (n+m) with
| E0 => evm
| E2 n' en' => E2 (n'+m) (fxp n' en')
end) n evn.

Compute (even_plus 4 2 ev4 ev2 : even 6).
(* = E2 4 (E2 2 (E2 0 E0)) *)

Hope this helps,
Jean-Francois

On Wed, Oct 27, 2021 at 01:18:34PM +0400, Frederic Mesnard wrote:
> Hi all,
>
> I am reading the CACM paper "Propositions as Types" written by Philip
> Wadler.
> With Coq, I can easily observe "propositions as types" and "proofs as
> programs".
> Can I also observe "simplification of proofs as evaluation of programs"
> within Coq?
> Where can I find examples?
>
> Thanks in advance!
> Fred

--
Jean-Francois Monin
Verimag
Universite Grenoble Alpes



Archive powered by MHonArc 2.6.19+.

Top of Page