let idents = match ident with None -> [] | Some id -> [id] in
TacticAst.Intros (loc, Some 1, idents)
| IDENT "lapply"; what = tactic_term;
- to_what = OPT [ "to" ; t = tactic_term -> t ] ->
- TacticAst.LApply (loc, to_what, what)
+ to_what = OPT [ "to" ; t = tactic_term -> t ];
+ ident = OPT [ "using" ; id = IDENT -> id ] ->
+ TacticAst.LApply (loc, to_what, what, ident)
| IDENT "left" -> TacticAst.Left loc
| IDENT "letin"; where = IDENT ; SYMBOL <:unicode<def>> ; t = tactic_term ->
TacticAst.LetIn (loc, t, where)
];
command: [[
- [ IDENT "set" ]; n = QSTRING; v = QSTRING ->
+ [ IDENT "set" ]; n = QSTRING; v = QSTRING ->
TacticAst.Set (loc, n, v)
+ | [ IDENT "drop" ] -> TacticAst.Drop loc
| [ IDENT "qed" ] -> TacticAst.Qed loc
| flavour = theorem_flavour; name = IDENT; SYMBOL ":"; typ = term;
body = OPT [ SYMBOL <:unicode<def>> (* ≝ *); body = term -> body ] ->