Skip to content
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

Add an explanation of skipping Qeds #34

Merged
merged 1 commit into from
Jul 24, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -213,3 +213,14 @@ make # or make -j <number-of-cores-on-your-machine>
- Ltac is provided as a plugin loaded by the standard library; if you have `-noinit` to load it you need `Declare ML Module "ltac_plugin".` (see [NoInit.v](src/NoInit.v)).
- Numeral notations are only provided by the prelude, even if you issue `Require Import Coq.Init.Datatypes`.
- If you use Coq master, the latest Coq reference manual is built and deployed to <https://coq.github.io/doc/master/refman/index.html> automatically.
- At Qed, Coq re-checks the proof term, which can take a while. At the same
time, Qed rarely fails - some reasons why it might include that there's a
universe inconsistency, the coinductive guarded check fails, there's a bug in
an OCaml tactic, or there's an incorrect use of `exact_no_check`. It's not so
easy to disable Qed - in Perennial we do so using this
[disable-qed.sh](https://github.com/mit-pdos/perennial/blob/e15783af0abb0614b50c4166b9bab49f5817032c/etc/disable-qed.sh)
script, which replaces `Qed` with `Unshelve. Fail idtac. Admitted.`. This
still ensures there are no goals, but skips the Qed checking. We only skip Qed
during CI, but run it regularly locally to have a fully consistent build;
another good tradeoff would be to run with Qed checking on a weekly basis but
not on every commit.
Loading