aboutsummaryrefslogtreecommitdiffhomepage
path: root/tactics
diff options
context:
space:
mode:
authorGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-02-13 18:19:32 +0000
committerGravatar msozeau <msozeau@85f007b7-540e-0410-9357-904b9bb8a0f7>2008-02-13 18:19:32 +0000
commit577d275822c7a266f865952bdcf2dd41861b5b21 (patch)
treebe2d4c0e6a05ef8f43605cba4a4bcb02259ec0c6 /tactics
parentbc50989dea9a5bd1b4ec891e63d67fd3fd2f9c3e (diff)
Debugging of the class_setoid tactic and eauto. Prepare for move from
class_setoid to class_tactics... git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/coq/trunk@10563 85f007b7-540e-0410-9357-904b9bb8a0f7
Diffstat (limited to 'tactics')
-rw-r--r--tactics/class_setoid.ml49
-rw-r--r--tactics/eauto.ml411
2 files changed, 16 insertions, 4 deletions
diff --git a/tactics/class_setoid.ml4 b/tactics/class_setoid.ml4
index 5939f840f..6569afc14 100644
--- a/tactics/class_setoid.ml4
+++ b/tactics/class_setoid.ml4
@@ -88,9 +88,12 @@ let setoid_morphism = lazy (gen_constant ["Classes"; "SetoidClass"] "setoid_morp
let setoid_refl_proj = lazy (gen_constant ["Classes"; "SetoidClass"] "equiv_refl")
let arrow_morphism a b =
- mkLambda (Name (id_of_string "A"), a,
- mkLambda (Name (id_of_string "B"), b,
- mkProd (Anonymous, mkRel 2, mkRel 2)))
+ if isprop a && isprop b then
+ Lazy.force impl
+ else
+ mkLambda (Name (id_of_string "A"), a,
+ mkLambda (Name (id_of_string "B"), b,
+ mkProd (Anonymous, mkRel 2, mkRel 2)))
let setoid_refl pars x =
applistc (Lazy.force setoid_refl_proj) (pars @ [x])
diff --git a/tactics/eauto.ml4 b/tactics/eauto.ml4
index da477f2a3..effebf331 100644
--- a/tactics/eauto.ml4
+++ b/tactics/eauto.ml4
@@ -241,15 +241,24 @@ module SearchProblem = struct
let success s = (sig_it (fst s.tacres)) = []
+ let pr_ev evs ev = Printer.pr_constr_env (Evd.evar_env ev) (Evarutil.nf_evar evs ev.Evd.evar_concl)
+
+ let pr_goals gls =
+ let evars = Evarutil.nf_evars (Refiner.project gls) in
+ prlist (pr_ev evars) (sig_it gls)
+
let filter_tactics (glls,v) l =
(* let _ = Proof_trees.db_pr_goal (List.hd (sig_it glls)) in *)
+(* let evars = Evarutil.nf_evars (Refiner.project glls) in *)
+(* msg (str"Goal:" ++ pr_ev evars (List.hd (sig_it glls)) ++ str"\n"); *)
let rec aux = function
| [] -> []
| (tac,pptac) :: tacl ->
try
let (lgls,ptl) = apply_tac_list tac glls in
let v' p = v (ptl p) in
-(* msg (hov 0 (pptac ++ str"\n")); *)
+(* let gl = Proof_trees.db_pr_goal (List.hd (sig_it glls)) in *)
+(* msg (hov 1 (pptac ++ str" gives: \n" ++ pr_goals lgls ++ str"\n")); *)
((lgls,v'),pptac) :: aux tacl
with e when Logic.catchable_exception e ->
aux tacl