coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Suneel Sarswat <suneel.sarswat AT gmail.com>
- To: coq-club AT inria.fr
- Subject: Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree
- Date: Tue, 6 Sep 2022 12:50:48 +0530
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=suneel.sarswat AT gmail.com; spf=Pass smtp.mailfrom=suneel.sarswat AT gmail.com; spf=None smtp.helo=postmaster AT mail-ej1-f43.google.com
- Ironport-data: A9a23:sBH2f6oyZwrTcEr3e8bsSZ2DeLReBmI1YxIvgKrLsJaIsI4StFCzt garIBnSP6zcNzT1edFwOou19kpU75LczNA3HQFvryA0Fn8a9+PIVI+TRqvSF3PLf5ebFCqLz O1HN4KedJhsJpP4jk3wWlQ0hSAkjclkfpKlVKicfHoZqTZMEE/Nszo68wICqtMu0IPR7z+l4 4uo+ZWOYAH9glaYD0pNg069gEM31BjNkGhA1rAOTagjUIj2yhH5pLpGTU2AByOQrrt8RoZWd M6fpF2NxV41yj92Yj+TfhkXRWVRKlLaFVDmZnO7wMFOiDAazsA5+v5T2Pbx9S67hh3R9+2dx umhurT3VB4iDrD8lt4SQgcGPRt5erV03IDIdC3XXcy7lyUqclPpyvRqSUw0ZMgWpr0xDmZJ+ vgVbjsKa3hvhcrsmOP9GrQq3J1zapWwVG8ckikIITXxFusgTJ3HBb7D/8RH1SsYicVHHPKYb M0cAdZqRE6aMkEWaw5OYH44tOWVhCf4LBZVlE+IhaAr8W763Fcg8qe4ZbI5ffTTHZkP9qqCn UrN+H28CRUHPvSE2D+d+zStgPXOlGX1Quov+KaQ8/drhBiexDVWBkFNE1S8pva9hwi1XNc3x 1EoFjQG6rUr/3y2ftfHUAym/lC+uVkEaf5vHLhvgO2S8Zb87wGcD2kCazdObt06qcM7LQDGM HfZzrsF4hQ/4NWopWKhGqS89mztZHBERYMWTWpVEltfuoiLTJQb10qXFr5e/LiJYsoZ8AwcL hiPpSk6wrgR1IsFi/798lfAjDah4JPOS2bZBzk7vEr0tmuVh6b/P+REDGQ3C94ec+51qXHf4 RA5dzC2trxmMH10vHXlrB8xNL+o/e2ZFzbXnERiGZIsnxz0pSD5IdgKvmsgeRYxWirhRdMPS B+C0e+2zM8DVEZGkYcqC25MI593lfC4SIyNug78N4ITP8QZmPC7ENFGPBbMhQgBYWAjlqYwP ZrzTCpfJSdyNEiT9xLvH711+eZzmEgWnDqPLbimkUnP+efBPBa9F+1ZWHPQNbtRxP3f8G3oH yN3bZTiJ+N3C72gPEE6MOc7cTg3EJTMLcmo8JYIKLfZeVcO9aNII6a5/I7NsrdNx8x9/tokN FnkMqOB4Fag13DBNyuQbXVvNOHmUZpl/CA0OCUtORCj3H16OdSj66IWdp0We7g79bw7naQkE aVdI8jQUO5STjnn+igGacavoYFnciOtj13cMiegZg85YJM9FRfC/cXpf1e0+SRXVni3uMIyr qeOzATeRZZfFQ1uANyHOv2qxlK1+3ManbsqDUfPJ9BSfmTq8ZRre3Sh1K9pf5lUJEyalDWA1 guQDRMJnsX3otc4oIvTmKSJj4a1CO8hTEdXGm/s67zpZyTX+2yUx5AZDLSFcDXbY2PD+Ku4Y NJTwfyhYuYMm0xHstYlHrtmkfA+6t/oq+MIxwhoBi+QPVGiC7clL3vfmMcT7etCwbhWvQbwU UWKo4EINbKMMcLjMVgQOAt1MbjZhK9MwmHfvaYvPUH3xC5r577bA09cCB+B1X5GJ7xvPYJ5n Oos5JwM5wqkhkZ4O9qKlHoPpWGFL3hFXqd+859GW8nkjQ0kzlwEapvZU3ek7JaKYtRKE08rP j7E2/aY1uoEnhLPIygpCHzA/etBnpBS6hpE+1kPegaSkd3fi/5rgRBc/FzblOiOIsmrDg6yB oRqC6GxDaCH/jMticoaGm7wQEdOAxqW/kG3wFwM/IEco49ESUSVRFDR+87UlKzaz46YVjde9 bCcjm3iVF4GuenvizAqVxcNR+PLFLRMG86rpCxjN8uAFpg+JzHih8dCoIbORwTPWasMuaEMm QWmECucp0E22e78bpDX07Wn6Ik=
- Ironport-hdrordr: A9a23:AU9oAaPak5E0kcBcTvijsMiBIKoaSvp037BL7TEJdfUxSKalfq +V7ZEmPHPP+VQssTQb6LO90cq7IE80l6QFhbX5VI3KNGLbUSmTTL2KhrGSpAEIdReOkNK1Fp 0NT0G9MrDN5JRB4voSKTPXL+od
- Ironport-phdr: A9a23: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 Q==
- Ironport-sdr: b5YmtxjCJCPv68ldc/+kkYNn6PKCoMbn9S/UKIauh3JpRzzV9AdRebKOj0ztMXSb4Z+cFY5A8V UC6nOfomRkGrRrYTJdtBHP8xDZ5qffDiS7vrtOhU24KgZo4UjpxwVQ4id2M25S+XFrqQdmoaG+ eImqUxVqM2C6vCMe/OucYZKq5A46YqKXBLsVQlaSpZMjVYQbk6L1YI0ijPWcmFu3P1wsCXx7qm nChO2SW5yYkR43+8Ds7PUc0GY/dv+MSaJm1OKn/x9/yeslG2JS1GuMR6OHfrKBnie0uOq99SjD hl2wHzRx7Oo2Hlie1FsEY9X3
Dear Ben,
Thanks for the suggestion. The program I am using also involves proofs of some terms. This I am currently doing by leaving proof holes and later proving them.
For example, Fixpoint test (x y:nat):some_type:=(refine match x with 0 => t1(x, y, _) | S n => t2(x, n, _) end). , where both the terms t1 and t2 require proofs _ which
I am proving later. Not very sure how to handle this.
Regards,
-Suneel
On Tue, Sep 6, 2022 at 12:21 PM D. Ben Knoble <ben.knoble AT gmail.com> wrote:
You might need `{measure}` from `FunInd`'s `Function`:
https://coq.inria.fr/refman/using/libraries/funind.html
This will require a proof that the measure function is decreasing in
recursive calls (I've used this before with a list that Coq could not
see shrinking, but whose length was smaller by 1 in recursive calls).
D. Ben Knoble
On Fri, Sep 2, 2022 at 1:42 PM Suneel Sarswat <suneel.sarswat AT gmail.com> wrote:
>
> Dear friend,
> Is there a way to write a fixpoint using a tree such that in each recursive call the tree after removing the minimum element is used?
> I am getting the following error.
>
> Require Import MSets MSetRBT ZArith.
> Module M := MSetRBT.Ops Nat_as_OT.
>
> Fixpoint test (tb ta : M.t)(a:M.elt) :M.t.
> destruct (M.remove_min tb) eqn:H.
> destruct p eqn:Hp.
> unfold M.elt in a.
> destruct (a-e) eqn:Hae.
> exact (test t ta a).
> exact ta.
> exact ta.
> Defined.
> (* Cannot guess decreasing argument of fix. *)
>
> Also the {struct tb} failed.
>
>
- [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Suneel Sarswat, 09/02/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, D. Ben Knoble, 09/02/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Suneel Sarswat, 09/06/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Castéran Pierre, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, mukesh tiwari, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Castéran Pierre, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Suneel Sarswat, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Suneel Sarswat, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, mukesh tiwari, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Castéran Pierre, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, Suneel Sarswat, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, mukesh tiwari, 09/03/2022
- Re: [Coq-Club] Fixpoint decreasing argument with remove_min in tree, D. Ben Knoble, 09/02/2022
Archive powered by MHonArc 2.6.19+.