coq-club AT inria.fr
Subject: The Coq mailing list
List archive
Re: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations)
Chronological Thread
- From: Jason Hu <fdhzs2010 AT hotmail.com>
- To: "coq-club AT inria.fr" <coq-club AT inria.fr>
- Subject: Re: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations)
- Date: Wed, 22 Nov 2023 03:05:32 +0000
- Accept-language: en-US, en-CA
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; 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=CjZATmykuEU11WyWLkX4n6nH2kNRRr98sKsLgf9Obmw=; b=CmJzkrr6BixHUH+HXANrKu5BgKra7/hQZ2mDekU7U8BYuG+uCdpCwl8xOtk6YiTxr2y5kfee8h1xW/EbIa/hJHZyIsCUK/rO41VSGCn+TPkgHuYr5RHV7tsguS5mT2RDOU6pnN0aqQ88Y1baYQgaH5FyzfqRNhYKREKSq4BG2se7YZ4ktEm/jHQJK2Du9QLFGJ/wbnx51VxGvLLcjP3If5OjPviLSkLUTG2HwcLhNmPc4/RiG6R9j6nArV0l113J9CY33Cq/bQvWLR23pIi+txHGM4YTTtQOMAQyhiIWrLpTwv9KcRUeFrM5jUePqSa8EwyrtsT/MKxWDeE5csZLAg==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=BT5H3Sa44N4pRmv5YwlBjB1Sz6m2yGcAUSVQaFcUDCaElPT01prcdz40TAkQF0bnMvyIJmo8cMRCw+Mu/aC0Gw07CKz7UqZedi6yM4iti21MCUiNkJzUOzzLFipsu3kOZe1AKD54Fs8i+n8KRBVuB08mkxVxHLAVPzPFcfK6a4NJ6K5AzHzyXoW26tDiWsfhCUE5Ltxby/+kqY/bhdTJ5wYCnRkEN2fw4knZHP1b4GbxGIDR87ikpbLJ2D1V3a+xfAaodQaGLg+wFHTkQpBKst27mQZaSTHw5qTIC4KHpZyDBDOIBiHYkVS/nwq0sxA1pP/vUREthghSfaNi2+bK+Q==
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=fdhzs2010 AT hotmail.com; spf=Pass smtp.mailfrom=fdhzs2010 AT hotmail.com; spf=Pass smtp.helo=postmaster AT NAM02-BN1-obe.outbound.protection.outlook.com
- Ironport-data: A9a23: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 G2tPxnRNW5psu5jH+wpoTvBXoVakg==
- Ironport-hdrordr: A9a23:eFAjHqsD1/+3mg7pU9gr0wpa7skCvYMji2hC6mlwRA09TyXGra 2TdaUgvyMc1gx7ZJh5o6H5BEDyewKmyXcV2/hmAV7GZmXbUQSTXeVfBOfZogEIXheOj9K1tp 0QOpSWaueAamSS5PySiGbXLz9j+qjgzEnCv5a8854Zd3AOV0gW1XYaNu/0KC1LbTgDIaB8OI uX58JBqTblU28QdN6HCn4MWPWGj8HXlbr9CCR2TCIP2U2rt3eF+bT6Gx+X0lM1SDVU24ov9m DDjkjQ+rijifem0RXRvlWjpai+2eGRhueqSaS3+4UowwfX+0iVjbdaKvy/VQUO0a6SAA5Dqq iNn/5vBbUx15qbRBDOnfKk4Xic7N9p0Q6r9beV7EGT3fARaQhKefapv7gpByfx+g4lppVxwa hL12WWu95eCg7Bhj3045zNWwtxnkS5rHI+mapL5kYvJrc2eftUt8gS7UlVGJAPEGbz750mCv BnCIXZ6OxNeV2XYnjFti1kwcCqXH40AhCaK3JyzvB8+FBt7Q9EJmcjtb8idy07heMAorF/lp T52oQBrsAxcvMr
- Ironport-phdr: A9a23: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
- Ironport-sdr: 655d7002_j3+Sk1HHgTvw9u+NspUpER6aDdAPEIf9FLuJ0l+UeiVOBoX CwZ/MLX00YcU6ReQnoFNtIdTYcsr5S9y6noWcYw==
- Msip_labels:
why don't you use with-pattern? Convoy pattern should be automatic if you use with-pattern in Equations.
From: coq-club-request AT inria.fr <coq-club-request AT inria.fr> on behalf of Agnishom Chattopadhyay <agnishom AT cmi.ac.in>
Sent: Tuesday, November 21, 2023 3:39 PM
To: coq-club AT inria.fr <coq-club AT inria.fr>
Subject: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations)
Sent: Tuesday, November 21, 2023 3:39 PM
To: coq-club AT inria.fr <coq-club AT inria.fr>
Subject: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations)
Hi Coq-Club;
The code for the minimal complete example can be found here: https://gist.github.com/Agnishom/a7414c092c1d23e37afebaa26f57580e
I want to define a function which decreases in one argument using < and on another structurally. However, this seems to be rather complex in this case because of two reasons:
(1) the proofs do not seem to remember the appropriate information when I use match
(2) when I have multiple recursive calls, I need to be able to propagate the hypothesis through each recursive call.
For (1), I learnt that the appropriate tool is the Convoy Pattern. For (2), my guess is that the appropriate solution is to use a return type of the form {x | P x} so that P is known at every step.
However, when I try to combine these things, I get some very unfriendly error messages. One example is this:
(unable to find a well-typed instantiation for "?P": cannot ensure that | |
"match o0 with | |
| Some p => let (_, btc) := p in length btc <= length (snd (f, btc')) | |
| None => True | |
end" is a subtype of | |
"(fun o : option (parse_tree * list bool) => | |
match o with | |
| Some p => let (_, btc) := p in length btc <= length (snd (f, btc')) | |
| None => True | |
end) (Some (t2, btc''))"). |
I believe that the issue arises from guessing an _ term incorrectly. But I am not sure that this is the case since I thought that Equations would make me prove any term that it is unsure about as an Obligation.
Any help is appreciated.
Thanks.
--Agnishom
- [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations), Agnishom Chattopadhyay, 11/21/2023
- Re: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations), Jason Hu, 11/22/2023
- Re: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations), Agnishom Chattopadhyay, 11/22/2023
- Re: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations), Jason Hu, 11/22/2023
Archive powered by MHonArc 2.6.19+.