type 'term auto_params = 'term list * (string*string) list
+type 'term just =
+ [ `Term of 'term
+ | `Auto of 'term auto_params ]
+
type ('term, 'lazy_term, 'reduction, 'ident) tactic =
(* Higher order tactics (i.e. tacticals) *)
| Do of loc * int * ('term, 'lazy_term, 'reduction, 'ident) tactic
(* Declarative language *)
| Assume of loc * 'ident * 'term
| Suppose of loc * 'term *'ident * 'term option
- | By_term_we_proved of loc *'term option * 'term * 'ident option * 'term option
+ | By_just_we_proved of loc * 'term just *
+ 'term * 'ident option * 'term option
| We_need_to_prove of loc * 'term * 'ident option * 'term option
- | Bydone of loc * 'term option
+ | Bydone of loc * 'term just
| We_proceed_by_induction_on of loc * 'term * 'term
| We_proceed_by_cases_on of loc * 'term * 'term
| Byinduction of loc * 'term * 'ident
| Thesisbecomes of loc * 'term
| Case of loc * string * (string * 'term) list
- | ExistsElim of loc * 'term option * 'ident * 'term * 'ident * 'lazy_term
- | AndElim of loc * 'term * 'ident * 'term * 'ident * 'term
+ | ExistsElim of loc * 'term just * 'ident * 'term * 'ident * 'lazy_term
+ | AndElim of loc * 'term just * 'ident * 'term * 'ident * 'term
| RewritingStep of
loc * (string option * 'term) option * 'term *
[ `Term of 'term | `Auto of 'term auto_params