aboutsummaryrefslogtreecommitdiffstats
path: root/src/trace
diff options
context:
space:
mode:
authorChantal Keller <Chantal.Keller@lri.fr>2016-10-07 15:30:33 +0200
committerChantal Keller <Chantal.Keller@lri.fr>2016-10-07 15:30:33 +0200
commitab72bee190e0e7b6a4136298a70f9fc5cfa0f907 (patch)
treea1c60385eafa5a63adc56c28e5422e32645aa641 /src/trace
parent3fb5bc25ded5ba737ec3c62d2cc49e240fc9cc3e (diff)
downloadsmtcoq-ab72bee190e0e7b6a4136298a70f9fc5cfa0f907.tar.gz
smtcoq-ab72bee190e0e7b6a4136298a70f9fc5cfa0f907.zip
Corrected a bug with holes in proofs
Diffstat (limited to 'src/trace')
-rw-r--r--src/trace/smtCommands.ml19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/trace/smtCommands.ml b/src/trace/smtCommands.ml
index 87b5cb7..d8ec105 100644
--- a/src/trace/smtCommands.ml
+++ b/src/trace/smtCommands.ml
@@ -369,9 +369,7 @@ let make_proof call_solver rt ro rf l =
call_solver rt ro fl (root,l)
-let tactic call_solver rt ro ra rf env sigma t =
- let (forall_let, concl) = Term.decompose_prod_assum t in
- let env = Environ.push_rel_context forall_let env in
+let core_tactic call_solver rt ro ra rf env sigma concl =
let a, b = get_arguments concl in
let (body_cast, body_nocast, cuts) =
if ((Term.eq_constr b (Lazy.force ctrue)) || (Term.eq_constr b (Lazy.force cfalse))) then
@@ -386,16 +384,17 @@ let tactic call_solver rt ro ra rf env sigma t =
let max_id_confl = make_proof call_solver rt ro rf l in
build_body_eq rt ro ra rf (Form.to_coq l1) (Form.to_coq l2) (Form.to_coq l) max_id_confl in
- let compose_lam_assum forall_let body =
- List.fold_left (fun t rd -> Term.mkLambda_or_LetIn rd t) body forall_let in
- let res_cast = compose_lam_assum forall_let body_cast in
- let res_nocast = compose_lam_assum forall_let body_nocast in
-
let cuts = (Btype.get_cuts rt)@cuts in
List.fold_right (fun (eqn, eqt) tac ->
Structures.tclTHENLAST (Structures.assert_before (Names.Name eqn) eqt) tac
) cuts
(Structures.tclTHEN
- (Structures.set_evars_tac res_nocast)
- (Structures.vm_cast_no_check res_cast))
+ (Structures.set_evars_tac body_nocast)
+ (Structures.vm_cast_no_check body_cast))
+
+
+let tactic call_solver rt ro ra rf =
+ Structures.tclTHEN
+ Tactics.intros
+ (Structures.mk_tactic (core_tactic call_solver rt ro ra rf))