]> matita.cs.unibo.it Git - helm.git/blobdiff - helm/ocaml/cic_transformations/tacticAstPp.ml
Nicer handling of automatic text insertion.
[helm.git] / helm / ocaml / cic_transformations / tacticAstPp.ml
index bd26fb387492dcc6947b23945d7769a2bd64a03b..d8f54a49f55ceefdf9b6eb97c7bfe68d2114d782 100644 (file)
@@ -78,8 +78,15 @@ let rec pp_tactic = function
      "cut " ^ pp_term_ast term ^
       (match ident with None -> "" | Some id -> " as " ^ id)
   | DecideEquality _ -> "decide equality"
-  | Decompose (_, term) ->
-      sprintf "decompose %s" (pp_term_ast term)
+  | Decompose (_, [], what, names) ->
+      sprintf "decompose %s%s" what (pp_intros_specs (None, names)) 
+  | Decompose (_, types, what, names) ->
+      let to_ident = function
+         | Ident id -> id
+        | Type _   -> assert false 
+      in
+      let types = List.rev_map to_ident types in
+      sprintf "decompose %s %s%s" (pp_idents types) what (pp_intros_specs (None, names)) 
   | Discriminate (_, term) -> "discriminate " ^ pp_term_ast term
   | Elim (_, term, using, num, idents) ->
       sprintf "elim " ^ pp_term_ast term ^
@@ -141,12 +148,14 @@ let pp_flavour = function
   | `Lemma -> "Lemma"
   | `Remark -> "Remark"
   | `Theorem -> "Theorem"
+  | `Variant -> "Variant"
 
 let pp_search_kind = function
   | `Locate -> "locate"
   | `Hint -> "hint"
   | `Match -> "match"
   | `Elim -> "elim"
+  | `Instance -> "instance"
 
 let pp_macro pp_term = function 
   (* Whelp *)
@@ -227,7 +236,6 @@ let pp_obj = function
     "record " ^ name ^ " " ^ pp_params params ^ " \\def {" ^
     pp_fields fields ^ "}"
 
-
 let pp_command = function
   | Include (_,path) -> "include " ^ path
   | Qed _ -> "qed"