aboutsummaryrefslogtreecommitdiff
path: root/tactics
diff options
context:
space:
mode:
authorPierre-Marie Pédrot2018-05-03 15:06:06 +0200
committerPierre-Marie Pédrot2018-05-03 15:06:06 +0200
commit0793b47d185371cbb389fe45be0691cc984c198c (patch)
tree1c1e4312fef645e391572c73475c472ca3624162 /tactics
parentfad6eee8ddb28fa7840044c65aa02557285e23f0 (diff)
parent880fee8f80503fc8a40e2e07b565cfd2a99d24da (diff)
Merge PR #7304: Make `intro`/`intros` progress on existential variables.
Diffstat (limited to 'tactics')
-rw-r--r--tactics/tactics.ml5
1 files changed, 5 insertions, 0 deletions
diff --git a/tactics/tactics.ml b/tactics/tactics.ml
index 3a20c3fc46..59c035e83a 100644
--- a/tactics/tactics.ml
+++ b/tactics/tactics.ml
@@ -979,6 +979,11 @@ let rec intro_then_gen name_flag move_flag force_flag dep_flag tac =
| LetIn (name,b,t,u) when not dep_flag || not (noccurn sigma 1 u) ->
let name = find_name false (LocalDef (name,b,t)) name_flag gl in
build_intro_tac name move_flag tac
+ | Evar ev when force_flag ->
+ let sigma, t = Evardefine.define_evar_as_product sigma ev in
+ Tacticals.New.tclTHEN
+ (Proofview.Unsafe.tclEVARS sigma)
+ (intro_then_gen name_flag move_flag force_flag dep_flag tac)
| _ ->
begin if not force_flag then Proofview.tclZERO (RefinerError (env, sigma, IntroNeedsProduct))
(* Note: red_in_concl includes betaiotazeta and this was like *)