(* First order tactics *)
| Absurd (_, term) -> "absurd" ^ term_pp term
| Apply (_, term) -> "apply " ^ term_pp term
+ | ApplyP (_, term) -> "applyP " ^ term_pp term
| ApplyS (_, term, params) ->
"applyS " ^ term_pp term ^ pp_auto_params ~term_pp params
| AutoBatch (_,params) -> "autobatch " ^
pp_auto_params ~term_pp params
| Assumption _ -> "assumption"
- | Cases (_, term, specs) -> Printf.sprintf "cases " ^ term_pp term ^
+ | Cases (_, term, pattern, specs) -> Printf.sprintf "cases " ^ term_pp term ^
+ pp_tactic_pattern pattern ^
pp_intros_specs "names " specs
| Change (_, where, with_what) ->
Printf.sprintf "change %s with %s" (pp_tactic_pattern where) (lazy_term_pp with_what)
let prefix_pp prefix =
if prefix = "" then "" else Printf.sprintf " \"%s\"" prefix
in
+ let flavour_pp = function
+ | None -> ""
+ | Some `Definition -> " as definition"
+ | Some `MutualDefinition -> " as mutual"
+ | Some `Fact -> " as fact"
+ | Some `Lemma -> " as lemma"
+ | Some `Remark -> " as remark"
+ | Some `Theorem -> " as theorem"
+ | Some `Variant -> " as variant"
+ | Some `Axiom -> " as axiom"
+ in
function
(* Whelp *)
| WInstance (_, term) -> "whelp instance " ^ term_pp term
| Hint (_, true) -> "hint rewrite"
| Hint (_, false) -> "hint"
| AutoInteractive (_,params) -> "auto " ^ pp_auto_params ~term_pp params
- | Inline (_, style, suri, prefix) ->
- Printf.sprintf "inline %s\"%s\"%s" (style_pp style) suri (prefix_pp prefix)
+ | Inline (_, style, suri, prefix, flavour) ->
+ Printf.sprintf "inline %s\"%s\"%s%s" (style_pp style) suri (prefix_pp prefix) (flavour_pp flavour)
let pp_associativity = function
| Gramext.LeftA -> "left associative"
Printf.sprintf "default \"%s\" %s" what
(String.concat " " (List.map UriManager.string_of_uri uris))
-let pp_coercion uri do_composites arity saturations=
+let pp_coercion ~term_pp t do_composites arity saturations=
Printf.sprintf "coercion %s %d %d %s"
- (UriManager.string_of_uri uri) arity saturations
+ (term_pp t) arity saturations
(if do_composites then "" else "nocomposites")
let pp_command ~term_pp ~obj_pp = function
| Index (_,_,uri) -> "Indexing " ^ UriManager.string_of_uri uri
- | Coercion (_, uri, do_composites, i, j) ->
- pp_coercion uri do_composites i j
+ | Coercion (_, t, do_composites, i, j) ->
+ pp_coercion ~term_pp t do_composites i j
| Default (_,what,uris) -> pp_default what uris
| Drop _ -> "drop"
| Include (_,path) -> "include \"" ^ path ^ "\""