LocatedTactic (_, tac) -> count_tactic current_size tac
| Absurd term -> countterm (current_size + 6) term
| Apply term -> countterm (current_size + 6) term
+ | Auto -> current_size + 4
| Assumption -> current_size + 10
| Change (t1, t2, where) ->
let size1 = countterm (current_size + 12) t1 in (* change, with *)
| Fold (kind, term) ->
countterm (current_size + 5) term
| Fourier -> current_size + 7
+ | Hint -> current_size + 4
| Injection ident -> current_size + 10 + (String.length ident)
| Intros (num, idents) ->
List.fold_left
Box.V([],[Box.Text([],"apply");
ast2astBox term])
| Assumption -> Box.Text([],"assumption")
+ | Auto -> Box.Text([],"auto")
| Change (t1, t2, where) ->
let where =
(match where with
Box.Text([],string_of_kind kind)]);
Box.indent(ast2astBox term)])
| Fourier -> Box.Text([],"fourier")
+ | Hint -> Box.Text([],"hint")
| Injection ident ->
Box.V([],[Box.Text([],"transitivity");
Box.indent (Box.Text([],ident))])
| LocatedTactic (loc, tac) -> pp_tactic tac
| Absurd term -> "absurd" ^ pp_term term
| Apply term -> "apply " ^ pp_term term
+ | Auto -> "auto"
| Assumption -> "assumption"
| Change (t1, t2, where) ->
sprintf "change %s with %s%s" (pp_term t1) (pp_term t2)