-
Notifications
You must be signed in to change notification settings - Fork 57
Build Why3 with Coq support #1393
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Comments
You can install Coq in Creusot's switch and it will stay there:
That said our current stance is to encourage making proofs automatable with why3find. I'd be interested in hearing about cases where that is difficult, and see if we can handle them in other ways than supporting Why3 transformations or Coq proofs. |
Why3 documentation says that Coq must be installed before building Why3:
(https://www.why3.org/doc/install.html)
To investigate why a particular invariant does not work. In Why3, the only way to debug an invariant is to read a rather unreadable goal. While in a proof assistant, I could simplify the goal and try to prove it yourself to figure out why it's not provable. |
That's a quote from the instructions for installing from source. On opam you can install (I previously thought installing Coq would rebuild Why3 for Coq support, but instead installing |
I see, thanks. Though |
|
Now that I think about it, you may want manage the installation of Why3 and Coq manually with a global opam switch instead, because it will make it less of a hassle to work with Coq (notably for editor extensions to find it):
|
I guess I need to patch |
Notice that in Why3 IDE, you can also manually apply some transformations and simplifications to do what what you want, that is to figure out why an invariant is not provable. That being said, I would certainly agree that when you have the knowledge of a proof assistant, like Coq, you would prefer to do that with that particular assistant. And a final remark: it is true that Why3 currently does not offer Lean as a back-end, but we would certainly be happy to accept patches to make it work! |
I'm familiar with Lean but I'm not familiar with Why3 codebase. So I don't know where to start. |
I don't see any transformation to evaluate the goal and context as seen in the "Task" tab, which is what I understand by "simplify the goal" as stated above, and which is what I would like to have (and do have in Coq). To take a concrete example, I have a VC that doesn't verify, so I look at the Task tab to figure out if I can prove the goal from the hypotheses or if a necessary hypothesis is missing. In this tab, I can see hypotheses like:
I would like to unfold Is it possible to do such simplifications in the Task tab and figure out if the provers have enough hypotheses to prove the goal? Otherwise what's the recommended approach for such cases? Currently I just add a
|
I would certainly admit that the set of available transformations in Why3 is not as rich as the set of tactics of Coq, but that case is not a good example at all : just go into the "command line" in the IDE and type exactly In this short The list of all Why3 transformations is documented here. |
Thanks! That's what I was missing. I've only read the doc of the IDE here which doesn't mention the "command line in the IDE", and I didn't notice it either. I'll have to test it when I'm on my computer but that should solve my problem, which I assume is the same as #1393 (comment), namely being able to read a VC to figure out if it's at all provable or if Creusot did not add a hypothesis that should be there, either because of a limitation in Creusot or because I actually forgot a non-trivial invariant. The goal is not to transform the VC to prove it in Why3 (or Coq), only to understand it. |
Another tactic I like is |
Right now
creusot-install
builds Why3 without Coq support, even if Coq is installed in the system.The text was updated successfully, but these errors were encountered: