| [ IDENT "fourier" ] ->
TacticAst.Fourier loc
| IDENT "goal"; n = NUM -> TacticAst.Goal (loc, int_of_string n)
- | [ IDENT "hint" ] -> TacticAst.Hint loc
| [ IDENT "injection" ]; ident = IDENT ->
TacticAst.Injection (loc, ident)
| [ IDENT "intros" ];
TacticAst.Redo (loc, int_opt steps)
| [ IDENT "check" ]; t = term ->
TacticAst.Check (loc, t)
+ | [ IDENT "hint" ] -> TacticAst.Hint loc
| [ IDENT "print" ]; name = QSTRING -> TacticAst.Print (loc, name)
]];
| Fold of loc * reduction_kind * 'term
| Fourier of loc
| Goal of loc * int (* change current goal, argument is goal number 1-based *)
- | Hint of loc
| Injection of loc * 'ident
| Intros of loc * int option * 'ident list
| Left of loc
| Abort of loc
| Print of loc * string
| Check of loc * 'term
+ | Hint of loc
| Quit of loc
| Redo of loc * int option
| Undo of loc * int option
countterm (current_size + 5) term
| Fourier _ -> current_size + 7
| Goal (_, n) -> current_size + 4 + int_of_float (ceil (log10 (float n)))
- | Hint _ -> current_size + 4
| Injection (_, ident) -> current_size + 10 + (String.length ident)
| Intros (_, num, idents) ->
List.fold_left
Box.indent(ast2astBox term)])
| Fourier _ -> Box.Text([],"fourier")
| Goal (_, n) -> Box.Text([],"goal " ^ string_of_int n)
- | Hint _ -> Box.Text([],"hint")
| Injection (_, ident) ->
Box.V([],[Box.Text([],"transitivity");
Box.indent (Box.Text([],ident))])
sprintf "fold %s %s" (pp_reduction_kind kind) (pp_term_ast term)
| Goal (_, n) -> "goal " ^ string_of_int n
| Fourier _ -> "fourier"
- | Hint _ -> "hint"
| Injection (_, ident) -> "injection " ^ ident
| Intros (_, None, []) -> "intro"
| Intros (_, num, idents) ->
let pp_macro pp_term = function
| Abort _ -> "Abort"
| Check (_, term) -> sprintf "Check %s" (pp_term term)
+ | Hint _ -> "hint"
| Redo (_, None) -> "Redo"
| Redo (_, Some n) -> sprintf "Redo %d" n
| Search_pat (_, kind, pat) ->