]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/tactics/introductionTactics.ml
ocaml 3.09 transition
[helm.git] / helm / ocaml / tactics / introductionTactics.ml
index 9751b2b7478fdf0d05dc74ea092fbfc1b60c6774..6bf8ab6c1e37d339c37ac5afaef982fe148c3ea1 100644 (file)
@@ -23,7 +23,7 @@
  * http://cs.unibo.it/helm/.
  *)
 
-let constructor_tac ~n (proof, goal) =
+let fake_constructor_tac ~n (proof, goal) =
   let module C = Cic in
   let module R = CicReduction in
    let (_,metasenv,_,_) = proof in
@@ -31,14 +31,17 @@ let constructor_tac ~n (proof, goal) =
      match (R.whd context ty) with
         (C.MutInd (uri, typeno, exp_named_subst))
       | (C.Appl ((C.MutInd (uri, typeno, exp_named_subst))::_)) ->
-         PrimitiveTactics.apply_tac 
-          ~term: (C.MutConstruct (uri, typeno, n, exp_named_subst))
-          (proof, goal)
-      | _ -> raise (ProofEngineTypes.Fail "Constructor: failed")
+         ProofEngineTypes.apply_tactic (
+          PrimitiveTactics.apply_tac 
+           ~term: (C.MutConstruct (uri, typeno, n, exp_named_subst)))
+           (proof, goal)
+      | _ -> raise (ProofEngineTypes.Fail (lazy "Constructor: failed"))
 ;;
 
-let exists_tac status = constructor_tac ~n:1 status ;;
-let split_tac status = constructor_tac ~n:1 status ;;
-let left_tac status = constructor_tac ~n:1 status ;;
-let right_tac status = constructor_tac ~n:2 status ;;
+let constructor_tac ~n = ProofEngineTypes.mk_tactic (fake_constructor_tac ~n)
+
+let exists_tac  = ProofEngineTypes.mk_tactic (fake_constructor_tac ~n:1) ;;
+let split_tac = ProofEngineTypes.mk_tactic (fake_constructor_tac ~n:1) ;;
+let left_tac = ProofEngineTypes.mk_tactic (fake_constructor_tac ~n:1) ;;
+let right_tac = ProofEngineTypes.mk_tactic (fake_constructor_tac ~n:2) ;;