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 |