-
Notifications
You must be signed in to change notification settings - Fork 763
Making Theorem with more flexible + code cleanup
#18743
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
Changes from all commits
f671bb2
5b90d5d
8c05b0b
c099ea8
ae777ef
79d2443
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1 @@ | ||
| overlay equations https://github.com/herbelin/Coq-Equations main+adapt+coq-pr18743-more-flexible-theorem-with 18743 master+more-flexible-theorem-with | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,5 @@ | ||
| - **Changed:** | ||
| Mutually-proved theorems with statements in different coinductive | ||
| types now supported | ||
| (`#18743 <https://github.com/coq/coq/pull/18743>`_, | ||
| by Hugo Herbelin). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -30,13 +30,31 @@ val get_bidirectionality_hint : GlobRef.t -> int option | |
|
|
||
| val clear_bidirectionality_hint : GlobRef.t -> unit | ||
|
|
||
| (** An auxiliary function for searching for fixpoint guard indexes *) | ||
| (** An auxiliary function for searching for fixpoint guard indices *) | ||
|
|
||
| (* Tells the possible indices liable to guard a fixpoint *) | ||
| type possible_fix_indices = int list list | ||
|
|
||
| (* Tells if possibly a cofixpoint or a fixpoint over the given list of possible indices *) | ||
| type possible_guard = { | ||
| possibly_cofix : bool; | ||
| possible_fix_indices : possible_fix_indices; | ||
| } (* Note: if no fix indices are given, it has to be a cofix *) | ||
|
|
||
| val search_guard : | ||
| ?loc:Loc.t -> ?evars:CClosure.evar_handler -> env -> int list list -> Constr.rec_declaration -> int array | ||
| ?loc:Loc.t -> ?evars:CClosure.evar_handler -> env -> | ||
| possible_guard -> Constr.rec_declaration -> int array option | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I guess the option means None -> cofix, Some -> fix
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. GADT: I'll think also about it.
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. There are two cases (+ Equations) in the code when we know in advance that it is a fixpoint. For these cases, maybe could we just provide a variant of
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I decided to add |
||
|
|
||
| val search_fix_guard : (* For Fixpoints only *) | ||
| ?loc:Loc.t -> ?evars:CClosure.evar_handler -> env -> | ||
| possible_fix_indices -> Constr.rec_declaration -> int array | ||
|
|
||
| val esearch_guard : | ||
| ?loc:Loc.t -> env -> evar_map -> int list list -> | ||
| ?loc:Loc.t -> env -> evar_map -> possible_guard -> | ||
| EConstr.rec_declaration -> int array option | ||
|
|
||
| val esearch_fix_guard : (* For Fixpoints only *) | ||
| ?loc:Loc.t -> env -> evar_map -> possible_fix_indices -> | ||
| EConstr.rec_declaration -> int array | ||
|
|
||
| type typing_constraint = | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overlay PR must be linked in this PR's opening comment