]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/software/components/tactics/declarative.ml
New declarative commands (ast, pretty-printing and parsing only):
[helm.git] / helm / software / components / tactics / declarative.ml
index a1c8cab690d2bc8c8e5915e44d371653d969a1ec..1604d92d8029af62abb68fb4f79b0121bd97311a 100644 (file)
  *)
 
 let assume id t =
- Tacticals.then_
-  ~start:
-    (Tactics.intros ~howmany:1
-      ~mk_fresh_name_callback:(fun _ _ _ ~typ -> Cic.Name id) ())
-  ~continuation:
-    (Tactics.change ~pattern:(None,[id,Cic.Implicit (Some `Hole)],None)
-     (fun _ metasenv ugraph -> t,metasenv,ugraph))
 Tacticals.then_
+     ~start:
+       (Tactics.intros ~howmany:1
+        ~mk_fresh_name_callback:(fun _ _ _ ~typ -> Cic.Name id) ())
+     ~continuation:
+       (Tactics.change ~pattern:(None,[id,Cic.Implicit (Some `Hole)],None)
+         (fun _ metasenv ugraph -> t,metasenv,ugraph))
 ;;
 
-let suppose t id =
+let suppose t id ty =
  Tacticals.then_
    ~start:
        (Tactics.intros ~howmany:1
@@ -43,20 +43,26 @@ let suppose t id =
              (fun _ metasenv ugraph -> t,metasenv,ugraph))
 ;;
 
-let by_term_we_proved t ty id =
- Tacticals.thens
- ~start:
-   (Tactics.cut ty
-     ~mk_fresh_name_callback:(fun _ _ _  ~typ -> Cic.Name id))
- ~continuations:
-   [ Tacticals.id_tac ; Tactics.apply t ]
+let by_term_we_proved t ty id ty' =
+ match t with
+    None -> assert false
+  | Some t ->
+     Tacticals.thens
+     ~start:
+       (Tactics.cut ty
+         ~mk_fresh_name_callback:(fun _ _ _  ~typ -> Cic.Name id))
+     ~continuations:
+       [ Tacticals.id_tac ; Tactics.apply t ]
 ;;
 
 let bydone t =
-   (Tactics.apply ~term:t)
+   match t with
+    None -> assert false
+  | Some t ->
+    (Tactics.apply ~term:t)
 ;;
 
-let we_need_to_prove t id =
+let we_need_to_prove t id ty =
  let aux status =
   let proof,goals =
    ProofEngineTypes.apply_tactic
@@ -73,3 +79,17 @@ let we_need_to_prove t id =
  in
   ProofEngineTypes.mk_tactic aux
 ;;
+
+let prova _ = assert false
+;;
+let bywehave _ = assert false
+;;
+let case _ = assert false
+;;
+let thesisbecomes _ = assert false
+;;
+let byinduction _ = assert false
+;;
+let we_proceed_by_induction_on _ = assert false
+;;
+let let1 _ = assert false