-
Notifications
You must be signed in to change notification settings - Fork 63
Expand file tree
/
Copy pathecCoreLib.mli
More file actions
259 lines (216 loc) · 5.95 KB
/
ecCoreLib.mli
File metadata and controls
259 lines (216 loc) · 5.95 KB
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
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
(* -------------------------------------------------------------------- *)
open EcSymbols
open EcPath
(* -------------------------------------------------------------------- *)
(* Symbols with dedicated parsing rules *)
val s_get : symbol
val s_set : symbol
val s_nil : symbol
val s_cons : symbol
val s_abs : symbol
val is_mixfix_op : symbol -> bool
val s_dbool : qsymbol
val s_dbitstring : qsymbol
val s_dinter : qsymbol
val s_real_of_int : qsymbol
(* -------------------------------------------------------------------- *)
val i_top : symbol
val i_self : symbol
val p_top : path
val i_wild : symbol
val p_wild : path
(* -------------------------------------------------------------------- *)
val i_Pervasive : symbol
val p_Pervasive : path
(* -------------------------------------------------------------------- *)
val base_rnd : string
val base_ll : string
(* -------------------------------------------------------------------- *)
module CI_Unit : sig
val p_unit : path
val p_tt : path
end
(*-------------------------------------------------------------------- *)
module CI_Witness : sig
val p_witness : path
end
(*-------------------------------------------------------------------- *)
module CI_Exn : sig
val p_exn : path
end
(* -------------------------------------------------------------------- *)
module CI_Option : sig
val p_option : path
val p_none : path
val p_some : path
val p_oget : path
end
(*-------------------------------------------------------------------- *)
module CI_Bool : sig
val i_Bool : symbol
val p_Bool : path
val p_bool : path
val p_true : path
val p_false : path
val p_not : path
val p_anda : path
val p_and : path
val p_ora : path
val p_or : path
val p_imp : path
val p_iff : path
val p_eq : path
end
(* -------------------------------------------------------------------- *)
module CI_Int : sig
val i_Int : symbol
val p_Int : path
val p_int : path
val p_int_elim : path
val p_int_opp : path
val p_int_add : path
val p_int_mul : path
val p_int_le : path
val p_int_lt : path
val p_int_pow : path
val p_int_edivz : path
val p_iteri : path
end
(* -------------------------------------------------------------------- *)
module CI_xint : sig
val p_Xint : path
val p_xint : path
val p_N : path
val p_inf : path
val p_xopp : path
val p_xadd : path
val p_xmul : path
val p_is_int : path
val p_is_inf : path
end
(* -------------------------------------------------------------------- *)
module CI_Real : sig
val i_Real : symbol
val p_Real : path
val p_real : path
val p_RealExtra : path
val p_RealOrder : path
val p_real0 : path
val p_real1 : path
val p_real_opp : path
val p_real_add : path
val p_real_mul : path
val p_real_inv : path
val p_real_pow : path
val p_real_le : path
val p_real_lt : path
val p_real_of_int : path
val p_real_abs : path
val real_lemma : string -> path
val real_order_lemma : string -> path
end
(* -------------------------------------------------------------------- *)
module CI_Xreal : sig
val p_Xreal : path
val p_realp : path
val p_of_real : path
val p_xreal : path
val p_rp : path
val p_inf : path
val p_xadd : path
val p_xmul : path
val p_xle : path
val p_is_real : path
val p_is_inf : path
val p_interp_form : path
val p_Ep : path
val p_concave_incr : path
val p_xle_cxr_l : path
val p_xle_cxr_r : path
end
(* -------------------------------------------------------------------- *)
module CI_Pred : sig
val i_Pred : symbol
val p_Pred : path
val p_predT : path
val p_pred1 : path
end
(* -------------------------------------------------------------------- *)
module CI_Distr : sig
val i_Distr : symbol
val p_Distr : path
val p_distr : path
val p_dbool : path
val p_dbitstring : path
val p_dinter : path
val p_dunit : path
val p_dlet : path
val p_dmap : path
val p_support : path
val p_mu : path
val p_lossless: path
val p_uniform : path
val p_full : path
val p_dfold : path
end
(* -------------------------------------------------------------------- *)
module CI_Sum : sig
val i_Sum : symbol
val p_Sum : path
val p_sum : path
end
(* -------------------------------------------------------------------- *)
module CI_Map : sig
val i_Map : symbol
val p_Map : path
val p_map : path
val p_get : path
val p_set : path
val p_cst : path
end
(* -------------------------------------------------------------------- *)
module CI_Logic : sig
val i_Logic : symbol
val p_Logic : path
val mk_logic : symbol -> path
val p_unit_elim : path
val p_false_elim : path
val p_bool_elim : path
val p_and_elim : path
val p_anda_elim : path
val p_and_proj_l : path
val p_and_proj_r : path
val p_anda_proj_l : path
val p_anda_proj_r : path
val p_anda_proj_rs : path
val p_or_elim : path
val p_ora_elim : path
val p_iff_elim : path
val p_if_elim : path
val p_true_intro : path
val p_and_intro : path
val p_anda_intro : path
val p_anda_intro_s : path
val p_or_intro_l : path
val p_ora_intro_l : path
val p_or_intro_r : path
val p_ora_intro_r : path
val p_iff_intro : path
val p_if_intro : path
val p_if_congr : path
val p_eq_refl : path
val p_eq_iff : path
val p_eq_trans : path
val p_eq_ind : path
val p_fcongr : path
val p_eq_sym : path
val p_eq_sym_imp : path
val p_eq_iff_imp : path
val p_negeqF : path
val p_iff_lr : path
val p_iff_rl : path
val p_cut_lemma : path
val p_case_eq_bool : path
val p_ip_dup : path
val p_negbTE : path
end