diff options
author | Matthieu Sozeau <mattam@mattam.org> | 2016-05-20 03:18:41 +0200 |
---|---|---|
committer | Matthieu Sozeau <mattam@mattam.org> | 2016-06-16 18:21:08 +0200 |
commit | 677d5deb72734a0e5502bcf47a905fcdf9374e51 (patch) | |
tree | c8812b98a4c5c2f34412b5d39a054be474679457 /engine/proofview.mli | |
parent | 8d06718fd4d99f4e5bc33452a02ea27d5a9279ed (diff) |
Proofview: extensions for backtracking eauto
unshelve_goals is used to correctly register dependent
subgoals that have to be solved. Resolution may fail to
do so using hints, so we have to put them back as goals
in that case. The shelf is a good interface for doing that.
unifiable can be used outside proofview to detect dependencies
between goals. This might be better in another module.
Diffstat (limited to 'engine/proofview.mli')
-rw-r--r-- | engine/proofview.mli | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/engine/proofview.mli b/engine/proofview.mli index 0b63164b0..901cf26e0 100644 --- a/engine/proofview.mli +++ b/engine/proofview.mli @@ -300,6 +300,16 @@ val tclINDEPENDENT : unit tactic -> unit tactic shelf for later use (or being solved by side-effects). *) val shelve : unit tactic +(** Shelves the given list of goals, which might include some that are + under focus and some that aren't. All the goals are placed on the + shelf for later use (or being solved by side-effects). *) +val shelve_goals : Goal.goal list -> unit tactic + +(** [unifiable sigma g l] checks whether [g] appears in another + subgoal of [l]. The list [l] may contain [g], but it does not + affect the result. Used by [shelve_unifiable]. *) +val unifiable : Evd.evar_map -> Goal.goal -> Goal.goal list -> bool + (** Shelves the unifiable goals under focus, i.e. the goals which appear in other goals under focus (the unfocused goals are not considered). *) |