Fix #1: Port Needle.v to Coq 8.6-8.8 #5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem: Coq >= 8.6 does not recognize the intro pattern
(), which also does notappear documented in Coq 8.5.3 reference
manual. So I guessed what to use instead.
Testing on the examples confirms that they all compile when replacing
()with
[](which causes a pattern match on the variable namespace). I also tried?to replace(), but some lemmas failed.Logistically, this PR only updates the master copy of Needle.v, not the dup in
examples/— PR #4 removes the extra copy anyway.This fixes #1 enough to allow the generated code to compile (tho with warnings). But the rest of the needle proofs from the ESOP'17 submission fail, and I can't exclude that fixing them require changes to Needle.
Here's one example, with Coq 8.6.0 (tho results seem the same on all proofs across 8.6.0-8.8.2):
I took the liberty of uploading to https://github.com/Blaisorblade/knot-esop-2017-case-study/ for convenience, tho strictly speaking nobody can use those files as they have no license.