coq-club AT inria.fr
Subject: The Coq mailing list
List archive
- From: Agnishom Chattopadhyay <agnishom AT cmi.ac.in>
- To: coq-club AT inria.fr
- Subject: [Coq-Club] Non obvious recursion (Convoy Pattern + Sigma Types + Equations)
- Date: Tue, 21 Nov 2023 14:39:05 -0600
- Authentication-results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=agnishom AT cmi.ac.in; spf=Pass smtp.mailfrom=agnishom AT cmi.ac.in; spf=None smtp.helo=postmaster AT mail.cmi.ac.in
- Ironport-data: A9a23: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
- Ironport-hdrordr: A9a23:oLIdYaGl61HMPFSopLqEwMeALOsnbusQ8zAXPiFKOGVom6Oj5q KTdZggpHzJYVUqOE3I++rwXJVoKEm0nfUejOUs1NyZLW7bUQWTXedfBEjZrAHIKmnR8uZc0O NHaKhxCNr5CBxfgdzh6Ae1V/YMqeP3lZxASd2x856ld2BXV50=
- Ironport-phdr: A9a23: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 SY+otjw1/hxhbg0DQUdPWE=
- Ironport-sdr: 655d157f_AzfPmVMVcxQYkM7GmBfOQNX4IVkvUoKQofXEXluXGjWPzXf BHxm4jYxCelFK8lPZA3Qp1m1DcQk+/670tbOf0A==
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+.