diff options
author | Chantal Keller <Chantal.Keller@lri.fr> | 2016-10-07 15:30:33 +0200 |
---|---|---|
committer | Chantal Keller <Chantal.Keller@lri.fr> | 2016-10-07 15:30:33 +0200 |
commit | ab72bee190e0e7b6a4136298a70f9fc5cfa0f907 (patch) | |
tree | a1c60385eafa5a63adc56c28e5422e32645aa641 /src/trace | |
parent | 3fb5bc25ded5ba737ec3c62d2cc49e240fc9cc3e (diff) | |
download | smtcoq-ab72bee190e0e7b6a4136298a70f9fc5cfa0f907.tar.gz smtcoq-ab72bee190e0e7b6a4136298a70f9fc5cfa0f907.zip |
Corrected a bug with holes in proofs
Diffstat (limited to 'src/trace')
-rw-r--r-- | src/trace/smtCommands.ml | 19 |
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)) |