rocq-prover / rocq-prover/stdlib
Z well_founded proofs should not be opaque
Open
Nobody has claimed this yet.
- Dominant language
- Rocq Prover
- Stars
- 42
- Forks
- 38
- Avg merge
- 14h 6m
- Merged PRs (30d)
- 3
Description
Version
8.8.0
Description of the problem
The standard library contains Z.gt_wf and Z.lt_wf. I would like to use these, but I can't, because they are Qed-opaque.
Require Import Coq.ZArith.ZArith.
Search well_founded Z.
(* Z.gt_wf: forall z : Z, well_founded (fun n m : Z => (m < n <= z)%Z)
Z.lt_wf: forall z : Z, well_founded (fun n m : Z => (z <= n < m)%Z)
*)
Fail Eval cbv delta [Z.gt_wf] in Z.gt_wf. (* Error: Cannot coerce Z.gt_wf to an evaluable reference. *)
Fail Eval cbv delta [Z.lt_wf] in Z.lt_wf. (* Error: Cannot coerce Z.lt_wf to an evaluable reference. *)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the definitions of Z.gt_wf and Z.lt_wf exposed by Coq.ZArith.ZArith, then reproduce the cbv delta examples from the issue. Done means both references are evaluable rather than Qed-opaque while still providing their stated well_founded results.
Written by the indexing model from the issue text.
Assessment
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100