rocq-prover / rocq-prover/stdlib

Z well_founded proofs should not be opaque

Open
#43 11 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.