| expr |
::= |
expr ; expr |
| |
| |
expr ; [ (expr |)* expr ] |
| |
| |
atom |
| |
| atom |
::= |
Fun input_fun+ -> expr |
| |
| |
Let (let_clause And)* let_clause In
expr |
| |
| |
Rec rec_clause |
| |
| |
Rec (rec_clause And)* rec_clause In
expr |
| |
| |
Match Context With (context_rule |)*
context_rule |
| |
| |
Match term With (match_rule |)* match_rule |
| |
| |
( expr ) |
| |
| |
( expr expr+ ) |
| |
| |
atom Orelse atom |
| |
| |
Do (int | ident) atom |
| |
| |
Repeat atom |
| |
| |
Try atom |
| |
| |
First [ (expr |)* expr ] |
| |
| |
Solve [ (expr |)* expr ] |
| |
| |
Idtac |
| |
| |
Fail |
| |
| |
primitive_tactic |
| |
| |
arg |
| |
| input_fun |
::= |
ident |
| |
| |
() |
| |
| let_clause |
::= |
ident = expr |
| |
| rec_clause |
::= |
ident input_fun+ -> expr |
| |
| context_rule |
::= |
[ (context_hyps ;)* context_hyps |-
term ] -> expr |
| |
| |
[ |- term ] -> expr |
| |
| |
_ -> expr |
| |
| context_hyps |
::= |
ident : term |
| |
| |
_ : term |
| |
| match_rule |
::= |
[ term ] -> expr |
| |
| |
_ -> expr |
| |
| arg |
::= |
() |
| |
| |
nat |
| |
| |
ident |
| |
| |
'term |