]> 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 b425f219af8585778f7b1a1bcc27fd57c774be39..6bf8ab6c1e37d339c37ac5afaef982fe148c3ea1 100644 (file)
@@ -23,8 +23,7 @@
  * http://cs.unibo.it/helm/.
  *)
 
-
-let constructor_tac ~n ~status:(proof, goal) =
+let fake_constructor_tac ~n (proof, goal) =
   let module C = Cic in
   let module R = CicReduction in
    let (_,metasenv,_,_) = proof in
@@ -32,29 +31,17 @@ let constructor_tac ~n ~status:(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))
-          ~status:(proof, goal)
-      | _ -> raise (ProofEngineTypes.Fail "Constructor: failed")
-;;
-
-
-let exists_tac ~status =
-  constructor_tac ~n:1 ~status
+         ProofEngineTypes.apply_tactic (
+          PrimitiveTactics.apply_tac 
+           ~term: (C.MutConstruct (uri, typeno, n, exp_named_subst)))
+           (proof, goal)
+      | _ -> raise (ProofEngineTypes.Fail (lazy "Constructor: failed"))
 ;;
 
+let constructor_tac ~n = ProofEngineTypes.mk_tactic (fake_constructor_tac ~n)
 
-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 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) ;;