-
Notifications
You must be signed in to change notification settings - Fork 51
/
Copy pathtactics.ebnf
135 lines (105 loc) · 3.27 KB
/
tactics.ebnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
!tactic_expr : intro
| "apply" term_commalist1 reduced_in_clause
| "auto" using_clause with_hint_dbs
| "rewrite" rewrite_term_list1 in_clause
| "simpl" in_clause
| "unfold" qualid_list1 in_clause
| destruct
| induction
| "elim" QUALID
| "split"
| "assumption"
| trivial
| "reflexivity"
| "case" QUALID
| clear
| "subst" local_ident_list
| "generalize" term_list1
| "exists" LOCAL_IDENT
| "red" in_clause
| "omega"
| discriminate
| inversion
| simple_induction
| constructor
| "congruence"
| "left"
| "right"
| "ring"
| "symmetry"
| "f_equal"
| "tauto"
| "revert" local_ident_list1
| "specialize" "(" LOCAL_IDENT QUALID ")"
| "idtac"
| "hnf" in_clause
| inversion_clear
| contradiction
| "injection" LOCAL_IDENT
| "exfalso"
| "cbv"
| "contradict" LOCAL_IDENT
| "lia"
| "field"
| "easy"
| "cbn"
| "exact" QUALID
| "intuition"
| "eauto" using_clause with_hint_dbs
LOCAL_IDENT : /[A-Za-z_][A-Za-z0-9_']*/
QUANTIFIED_IDENT : /[A-Za-z_][A-Za-z0-9_']*/
INT : /1|2|3|4/
QUALID : /([A-Za-z_][A-Za-z0-9_']*\.)*[A-Za-z_][A-Za-z0-9_']*/
HINT_DB : /arith|zarith|algebra|real|sets|core|bool|datatypes|coc|set|zfc/
!local_ident_list :
| LOCAL_IDENT local_ident_list
!local_ident_list1 : LOCAL_IDENT
| LOCAL_IDENT local_ident_list1
!qualid_list1 : QUALID
| QUALID "," qualid_list1
!term_list1 : QUALID
| QUALID term_list1
!term_commalist1 : QUALID
| QUALID "," term_commalist1
!hint_db_list1 : HINT_DB
| HINT_DB hint_db_list1
!reduced_in_clause :
| "in" LOCAL_IDENT
!in_clause :
| "in" LOCAL_IDENT
| "in" "|- *"
| "in" "*"
!at_clause :
| "at" INT
!using_clause :
| "using" qualid_list1
!with_hint_dbs :
| "with" hint_db_list1
| "with" "*"
!intro : "intro"
| "intros"
!rewrite_term : QUALID
| "->" QUALID
| "<-" QUALID
!rewrite_term_list1 : rewrite_term
| rewrite_term "," rewrite_term_list1
!destruct : "destruct" term_commalist1
!induction : "induction" LOCAL_IDENT
| "induction" INT
!trivial : "trivial"
!clear : "clear"
| "clear" local_ident_list1
!discriminate : "discriminate"
| "discriminate" LOCAL_IDENT
!inversion : "inversion" LOCAL_IDENT
| "inversion" INT
!simple_induction : "simple induction" QUANTIFIED_IDENT
| "simple induction" INT
!constructor : "constructor"
| "constructor" INT
!inversion_clear : "inversion_clear" LOCAL_IDENT
| "inversion_clear" INT
!contradiction : "contradiction"
| "contradiction" LOCAL_IDENT
%import common.WS
%ignore WS