Skip to Content.
Sympa Menu

coq-club - Re: [Coq-Club] Why are my terms not reducing?

coq-club AT inria.fr

Subject: The Coq mailing list

List archive

Re: [Coq-Club] Why are my terms not reducing?


Chronological Thread 
  • From: Samuel Gruetter <gruetter AT mit.edu>
  • To: "coq-club AT inria.fr" <coq-club AT inria.fr>
  • Subject: Re: [Coq-Club] Why are my terms not reducing?
  • Date: Mon, 22 Jan 2024 20:32:21 +0000
  • Accept-language: en-US
  • Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mit.edu; dmarc=pass action=none header.from=mit.edu; dkim=pass header.d=mit.edu; arc=none
  • Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=x30chSQ0wy/kQSHp54Pvnn5A1607riJVW86A9ZqlwM0=; b=cdl//Ygpp02/hZa/co+IrpF3rbTruGmzA6rYykxxbWbMI2bcF7fXqAONDfl5+JNgqELFjI6L8hG34H74WvjqcEDijG50Hn4rfBIjAeFbyDhZZ+xXhgwytIJ5PKOYb1SGBHwpH/mzeYDuK3RZ3Pn8C4MlbXe4KA/KLl0AGSLD9lv+C8W3aXP2RTYHK8u5Za5FV6QisllbEeWDxpZyICgBwZ37m0zhA6mo87dvxqCBMofsSw+i0HHWGtWjmFuxmwefR+ylkZuJ0l/SDpZ3eoIUsWzGSjLV1pFJVkTAkPFjYV2tmQeHDS83o12TZd4c80w68J4ka8wBcjJpeQgidRUWuQ==
  • Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TPyKBgoR91iHNji2jPdxj9nHGuVBZgMdnz4HfY3qCmpsEclam5j5352wG0CRXoQ0Yr3CH4V+6Gvj2JynSL4KGEHPgWHcQ9r0IHqDbCQDC1tSQmTxWmOfLXAN7UPfuz/ktGTI4EnT4yVod6BRXMUmcDFtE5DODn/FSy/CV7ZlOlOt+fW4nghOeKy2Am1iP1p+bYA4RJLaz/s2p3vALYVbsdF5q9y4GJIEIuUVlaeWA+QCkajX9Agc1tMWO9Arzz+GC0yFn8os9pvz0KTqnOlBJ850cUWFR/kAdSwtJUYngYl1MmvGfW8mRglkhmnnfceMTpdvtuPZP9wmyg2vJC5VmA==
  • Authentication-results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=gruetter AT mit.edu; spf=Pass smtp.mailfrom=gruetter AT mit.edu; spf=Pass smtp.helo=postmaster AT NAM04-BN8-obe.outbound.protection.outlook.com
  • Ironport-data: A9a23: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
  • Ironport-hdrordr: A9a23:zpuKwKGph2NY+CaYpLqFe5HXdLJyesId70hD6qkvc3Fom52j/f xGws5x6fatskdoZJhSo6H6BEDgewKUyXcR2+Us1NiZLW3bUQeTTb2KqLGSugEIeBeOvtK1t5 0QFJSWYeeYZTcVsS+52njfLz9K+qjlzEncv5a6854bd3AJV0gP1WdEIzfeNnczaBhNBJI/Gp bZzNFAvSCcdXMeadn+LmUZXsDYzue73q7OUFojPVoK+QOOhTSn5PrRCB6DxCoTVDtJ3PML7X XFqQrk/a+u2svLhyM0llWjo6i+quGRhOerN/b8y/T97Q+cyjpAUb4RFIFqegpF491Hpmxa0u Uk6C1QRfibo0mhA11d5yGdkDUImQxel0PK2BuWh2Durtf+Qy9/A81dhZhBeh+c8EY4uspguZ g7q15xmqAnfy8oph6NkuTgRlVvjA65sHAimekcgzhWVpYfcqZYqcga8FlOGJkNESrm4MR/ed Meev309bJTaxeXfnrZtm5gzJilWWkyBA6PRgwHttaO2zZbkXhlxw8TxdAZnH0H6JUhIqM0kN jsI+BtjvVDX8UWZaVyCKMIRta2EHXERVbWPGebMT3cZdI60rL22u7KCZkOlZCXkcYzveQPcb z6IS1liVI=
  • Ironport-phdr: A9a23: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 GlyDW07AVSbiNiaijM=
  • Ironport-sdr: 65aed0e1_8cDf6cm1GrBu/Ori8Jk+vsNolVvMlNHIwXnis/bIbbqQ8LH K+ee9/NHhXHdCaGNMOo4GLNA1DoN54/wACHAxZQ==

Hi Agnishom,

The problem you encounter at the end of Method1.v is that Fixpoints only reduce if the argument marked as structurally decreasing is a constructor. So your problem could be "minimized" as follows:

Fixpoint my_add(n m: nat) {struct n}: nat :=
  match m with
  | O => n
  | S m' =>
    match n with
    | O => m
    | S n' => S (S (my_add n' m'))
  end
end.

Goal forall x, my_add x 0 = x.
  intros. Fail reflexivity. simpl. (* doesn't simplify *)
Abort.

In your Method1.v, you could work around the problem by replacing the arbitrary acc you pass to decode_aux with a transparently-defined (rbc_lt_wf _), which you already do in decode_aux1, and proving the lemma for this one works as expected:

Lemma decode_aux1_eps (bc : list bool) :
  decode_aux1 Epsilon bc = Some (parse_epsilon, bc).
Proof.
  unfold decode_aux1. simpl. reflexivity.
Qed.

Best,

Sam


-----Original Message-----
From: Agnishom Chattopadhyay <agnishom AT cmi.ac.in>
Reply-To: coq-club AT inria.fr
To: coq-club AT inria.fr
Subject: [Coq-Club] Why are my terms not reducing?
Date: 01/17/2024 05:40:33 PM

Hi Coq-club;

I recently came across the proof pearl titled "Well-founded recursion done right" by Xavier Leroy, and considered applying it to a proof I previously tried to attempt.

I wish to define the function described in this Haskell program, and I have tried three different approaches.

Approach 1(Method1.v) : This uses the mentioned proof-pearl. In this case, the _expression_ refuses to reduce.
Approach 2(Method2.v): Uses the refine tactic and this technique (from Pit-Claudel) to get rid of opaque proofs. Much of this code is thanks to Mukesh Tiwari. However, even in this case, the _expression_ refuses to reduce.
Approach 3(GitHub Issue): Uses the Equations package. This crashes coqtop.

Any ideas on why these refuse to reduce? In Page 2 of the proof-pearl, the author says "Now, the hole [...] is any proof of [...],and it can be opaque.". So, I assume that the error is not due to me providing opaque proofs.

--Agnishom




Archive powered by MHonArc 2.6.19+.

Top of Page