1 (* ========================================================================== *)
2 (* FLYSPECK - BOOK FORMALIZATION *)
5 (* Author: Thomas C. Hales *)
7 (* ========================================================================== *)
10 store data from different HOL Light snapshots to make it easier to make
11 an upgrade from one snapshot to the next.
16 module type Snapshot_type = sig
17 val the_constants : (string * hol_type) list
18 val the_loaded_files : string list
19 val the_overload_skeletons : (string*hol_type) list
20 val the_interface : (string * (string * hol_type)) list
21 val the_types:(string*int) list
24 module Snapshot_utility = struct
26 (* This was used to make printable manufactured types. No more `:?467346` *)
29 let fr = (union (tyvars ty) []) in
30 let alpha = map (mk_vartype o (String.make 1) o (char_of_int)) (65--(65+List.length(fr))) in
31 let alphafr = subtract alpha fr in
32 let sel = filter (fun t -> (dest_vartype t).[0]='?') fr in
33 type_subst (map (fun t-> (List.nth alphafr t,List.nth sel t)) (0--(List.length sel - 1))) ty;;
38 map (fun (t,u) -> (t, clean_ty u)) (constants());;
39 map fst !loaded_files;;
40 !the_overload_skeletons;;
41 map (fun (t,(u,v)) -> (t,(u,clean_ty v))) (!the_interface);;
49 module Snapshot_v220_7_29_2009 : Snapshot_type = struct
51 let the_types = [("net", 1); ("topology", 1); ("3", 0); ("2", 0); ("finite_sum", 2);
52 ("cart", 2); ("finite_image", 1); ("int", 0); ("real", 0); ("hreal", 0);
53 ("nadd", 0); ("char", 0); ("list", 1); ("option", 1); ("sum", 2);
54 ("recspace", 1); ("num", 0); ("ind", 0); ("prod", 2); ("1", 0);
55 ("bool", 0); ("fun", 2)];;
57 let the_loaded_files = ["flyspeck.ml"; "wlog_examples.ml"; "wlog.ml"; "real.ml"; "measure.ml";
58 "card.ml"; "wo.ml"; "geom.ml"; "transc.ml"; "canal.ml"; "complex.ml";
59 "integration.ml"; "analysis.ml"; "dimension.ml"; "convex.ml";
60 "topology.ml"; "iter.ml"; "floor.ml"; "cross.ml"; "determinants.ml";
61 "products.ml"; "permutations.ml"; "vectors.ml"; "misc.ml"; "database.ml";
62 "help.ml"; "define.ml"; "cart.ml"; "iter.ml"; "sets.ml"; "int.ml";
63 "calc_rat.ml"; "real.ml"; "realarith.ml"; "calc_int.ml"; "realax.ml";
64 "list.ml"; "ind-types.ml"; "grobner.ml"; "normalizer.ml"; "calc_num.ml";
65 "wf.ml"; "arith.ml"; "num.ml"; "pair.ml"; "recursion.ml"; "quot.ml";
66 "meson.ml"; "canon.ml"; "trivia.ml"; "class.ml"; "ind-defs.ml";
67 "theorems.ml"; "simp.ml"; "itab.ml"; "tactics.ml"; "drule.ml"; "bool.ml";
68 "equal.ml"; "printer.ml"; "parser.ml"; "preterm.ml"; "nets.ml";
69 "basics.ml"; "fusion.ml"; "lib.ml"; "sys.ml"];;
71 let the_overload_skeletons =
72 [("real_interval", `:A`); ("segment", `:A`); ("interval", `:A`);
73 ("**", `:A->B->C`); ("norm", `:A->real`); ("gcd", `:A#A->A`);
74 ("coprime", `:A#A->bool`); ("mod", `:A->A->A->bool`);
75 ("divides", `:A->A->bool`); ("&", `:num->A`); ("min", `:A->A->A`);
76 ("max", `:A->A->A`); ("abs", `:A->A`); ("inv", `:A->A`);
77 ("pow", `:A->num->A`); ("--", `:A->A`); (">=", `:A->A->bool`);
78 (">", `:A->A->bool`); ("<=", `:A->A->bool`); ("<", `:A->A->bool`);
79 ("/", `:A->A->A`); ("*", `:A->A->A`); ("-", `:A->A->A`);
82 (* this should be regenerated. It was not captured at the right moment *)
84 [("+", ("real_add", `:real->real->real`));
85 ("-", ("real_sub", `:real->real->real`));
86 ("*", ("real_mul", `:real->real->real`));
87 ("/", ("real_div", `:real->real->real`));
88 ("<", ("real_lt", `:real->real->bool`));
89 ("<=", ("real_le", `:real->real->bool`));
90 (">", ("real_gt", `:real->real->bool`));
91 (">=", ("real_ge", `:real->real->bool`));
92 ("--", ("real_neg", `:real->real`));
93 ("pow", ("real_pow", `:real->num->real`));
94 ("inv", ("real_inv", `:real->real`));
95 ("abs", ("real_abs", `:real->real`));
96 ("max", ("real_max", `:real->real->real`));
97 ("min", ("real_min", `:real->real->real`));
98 ("&", ("real_of_num", `:num->real`));
99 ("mod", ("real_mod", `:real->real->real->bool`));
100 ("+", ("+", `:num->num->num`)); ("-", ("-", `:num->num->num`));
101 ("*", ("*", `:num->num->num`)); ("<", ("<", `:num->num->bool`));
102 ("<=", ("<=", `:num->num->bool`)); (">", (">", `:num->num->bool`));
103 (">=", (">=", `:num->num->bool`));
104 ("divides", ("num_divides", `:num->num->bool`));
105 ("mod", ("num_mod", `:num->num->num->bool`));
106 ("coprime", ("num_coprime", `:num#num->bool`));
107 ("gcd", ("num_gcd", `:num#num->num`));
108 ("vol", ("measure", `:(real^3->bool)->real`));
109 ("NULLSET", ("negligible", `:(real^3->bool)->bool`));
110 ("+", ("vector_add", `:real^N->real^N->real^N`));
111 ("-", ("vector_sub", `:real^N->real^N->real^N`));
112 ("--", ("vector_neg", `:real^N->real^N`));
113 ("norm", ("vector_norm", `:real^N->real`));
114 ("**", ("vector_matrix_mul", `:real^M->real^N^M->real^N`));
116 ("closed_real_interval", `:(real#real)list->real->bool`));
117 ("real_interval", ("open_real_interval", `:real#real->real->bool`));
118 ("inv", ("complex_inv", `:real^2->real^2`));
119 ("pow", ("complex_pow", `:real^2->num->real^2`));
120 ("/", ("complex_div", `:real^2->real^2->real^2`));
121 ("*", ("complex_mul", `:real^2->real^2->real^2`));
122 ("-", ("vector_sub", `:real^2->real^2->real^2`));
123 ("+", ("vector_add", `:real^2->real^2->real^2`));
124 ("--", ("vector_neg", `:real^2->real^2`));
125 ("segment", ("closed_segment", `:(real^A#real^A)list->real^A->bool`));
126 ("segment", ("open_segment", `:real^A#real^A->real^A->bool`));
127 ("interval", ("closed_interval", `:(real^A#real^A)list->real^A->bool`));
128 ("interval", ("open_interval", `:real^A#real^A->real^A->bool`));
129 ("**", ("matrix_vector_mul", `:real^N^M->real^N->real^M`));
130 ("**", ("matrix_mul", `:real^N^M->real^P^N->real^P^M`));
131 ("-", ("matrix_sub", `:real^N^M->real^N^M->real^N^M`));
132 ("+", ("matrix_add", `:real^N^M->real^N^M->real^N^M`));
133 ("--", ("matrix_neg", `:real^N^M->real^N^M`));
134 ("dist", ("distance", `:real^N#real^N->real`));
135 ("gcd", ("int_gcd", `:int#int->int`));
136 ("coprime", ("int_coprime", `:int#int->bool`));
137 ("mod", ("int_mod", `:int->int->int->bool`));
138 ("divides", ("int_divides", `:int->int->bool`));
139 ("&", ("int_of_num", `:num->int`));
140 ("min", ("int_min", `:int->int->int`));
141 ("max", ("int_max", `:int->int->int`)); ("abs", ("int_abs", `:int->int`));
142 ("pow", ("int_pow", `:int->num->int`)); ("--", ("int_neg", `:int->int`));
143 (">=", ("int_ge", `:int->int->bool`));
144 (">", ("int_gt", `:int->int->bool`));
145 ("<=", ("int_le", `:int->int->bool`));
146 ("<", ("int_lt", `:int->int->bool`));
147 ("*", ("int_mul", `:int->int->int`));
148 ("-", ("int_sub", `:int->int->int`));
149 ("+", ("int_add", `:int->int->int`));
150 ("&", ("hreal_of_num", `:num->hreal`));
151 ("<=>", ("=", `:bool->bool->bool`))];;
154 [("SDIFF", `:(A->bool)->(A->bool)->A->bool`);
155 ("vol_ball_wedge", `:real^3->real^3->real^3->real^3->real->real`);
156 ("vol_rect", `:real^A->real^B->real`);
157 ("vol_conv", `:real^A->real^A->real^A->real^A->real`);
158 ("vol_conic_cap_wedge",
159 `:real^3->real^3->real^3->real^3->real->real->real`);
160 ("vol_frustt_wedge", `:real^3->real^3->real^3->real^3->real->real->real`);
161 ("vol_solid_triangle", `:real^A->real^A->real^A->real^A->real->real`);
162 ("primitive", `:(real^3->bool)->bool`);
163 ("circular_cone", `:(real^3->bool)->bool`);
164 ("c_cone", `:real^3#real^3#real->real^3->bool`);
165 ("sphere", `:(real^3->bool)->bool`);
166 ("rect", `:real^3->real^3->real^3->bool`);
167 ("solid_triangle", `:real^A->(real^A->bool)->real->real^A->bool`);
168 ("cone0", `:real^A->(real^A->bool)->real^A->bool`);
169 ("cone", `:real^A->(real^A->bool)->real^A->bool`);
170 ("dihV", `:real^A->real^A->real^A->real^A->real`);
171 ("opposite", `:real^N->real^N->(real^N->bool)->bool`);
172 ("arcV", `:real^A->real^A->real^A->real`);
173 ("wedge", `:real^3->real^3->real^3->real^3->real^3->bool`);
174 ("azim", `:real^3->real^3->real^3->real^3->real`);
175 ("orthonormal", `:real^3->real^3->real^3->bool`);
176 ("conic_cap", `:real^A->real^A->real->real->real^A->bool`);
177 ("ellipsoid", `:real^3->real->real^3->bool`);
178 ("normball", `:real^A->real->real^A->bool`);
179 ("scale", `:real^3->real^3->real^3`);
180 ("frustt", `:real^A->real^A->real->real->real^A->bool`);
181 ("frustum", `:real^N->real^N->real->real->real->real^N->bool`);
182 ("rcone_eq", `:real^A->real^A->real->real^A->bool`);
183 ("rcone_ge", `:real^A->real^A->real->real^A->bool`);
184 ("rcone_gt", `:real^A->real^A->real->real^A->bool`);
185 ("rconesgn", `:(real->real->bool)->real^A->real^A->real->real^A->bool`);
186 ("delta_x", `:real->real->real->real->real->real->real`);
187 ("conv0", `:(real^A->bool)->real^A->bool`);
188 ("aff_le", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
189 ("aff_lt", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
190 ("aff_ge", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
191 ("aff_gt", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
192 ("sgn_le", `:real->bool`); ("sgn_lt", `:real->bool`);
193 ("sgn_ge", `:real->bool`); ("sgn_gt", `:real->bool`);
194 ("affsign", `:(real->bool)->(real^A->bool)->(real^A->bool)->real^A->bool`);
195 ("lin_combo", `:(real^N->bool)->(real^N->real)->real^N`);
196 ("pad2d3d", `:real^2->real^3`); ("plane", `:(real^A->bool)->bool`);
197 ("slice", `:num->real->(real^A->bool)->real^B->bool`);
198 ("pushin", `:num->B->B^A->B^C`); ("dropout", `:num->real^N->real^M`);
199 ("real_measure", `:(real->bool)->real`);
200 ("real_measurable", `:(real->bool)->bool`);
201 ("has_real_measure", `:(real->bool)->real->bool`);
202 ("absolutely_real_integrable_on", `:(real->real)->(real->bool)->bool`);
203 ("real_negligible", `:(real->bool)->bool`);
204 ("real_integral", `:(real->bool)->(real->real)->real`);
205 ("real_integrable_on", `:(real->real)->(real->bool)->bool`);
206 ("has_real_integral", `:(real->real)->real->(real->bool)->bool`);
207 ("closed_real_interval", `:(real#real)list->real->bool`);
208 ("open_real_interval", `:real#real->real->bool`);
209 ("is_realinterval", `:(real->bool)->bool`);
210 ("real_differentiable_on", `:(real->real)->(real->bool)->bool`);
211 ("higher_real_derivative", `:num->(real->real)->real->real`);
212 ("real_derivative", `:(real->real)->real->real`);
213 ("real_differentiable", `:(real->real)->(real)net->bool`);
214 ("has_real_derivative", `:(real->real)->real->(real)net->bool`);
215 ("real_continuous_on", `:(real->real)->(real->bool)->bool`);
216 ("real_continuous", `:(A->real)->(A)net->bool`);
217 ("at_neginfinity", `:(real)net`); ("at_posinfinity", `:(real)net`);
218 ("atreal", `:real->(real)net`);
219 ("real_summable", `:(num->bool)->(num->real)->bool`);
220 ("real_infsum", `:(num->bool)->(num->real)->real`);
221 ("real_sums", `:(num->real)->real->(num->bool)->bool`);
222 ("--->", `:(A->real)->real->(A)net->bool`);
223 ("real_compact", `:(real->bool)->bool`);
224 ("real_bounded", `:(real->bool)->bool`);
225 ("euclideanreal", `:(real)topology`);
226 ("real_closed", `:(real->bool)->bool`);
227 ("real_open", `:(real->bool)->bool`);
228 ("measure", `:(real^A->bool)->real`);
229 ("measurable", `:(real^A->bool)->bool`);
230 ("has_measure", `:(real^A->bool)->real->bool`);
231 ("*_c", `:(A->bool)->(B->bool)->A#B->bool`);
232 ("+_c", `:(A->bool)->(B->bool)->A+B->bool`);
233 ("ordinal", `:(A#A->bool)->bool`);
234 ("linseg", `:(A#A->bool)->A->A#A->bool`);
235 ("inseg", `:(A#A->bool)->(A#A->bool)->bool`);
236 ("woset", `:(A#A->bool)->bool`);
237 ("chain", `:(A#A->bool)->(A->bool)->bool`);
238 ("poset", `:(A#A->bool)->bool`); ("fl", `:(A#A->bool)->A->bool`);
239 ("less", `:(A#A->bool)->A#A->bool`);
240 ("angle", `:real^A#real^A#real^A->real`);
241 ("vector_angle", `:real^A->real^A->real`); ("acs", `:real->real`);
242 ("asn", `:real->real`); ("cacs", `:real^2->real^2`);
243 ("casn", `:real^2->real^2`); ("atn", `:real->real`);
244 ("catn", `:real^2->real^2`); ("unwinding", `:real^2->real^2`);
245 ("cpow", `:real^2->real^2->real^2`); ("clog", `:real^2->real^2`);
246 ("tan", `:real->real`); ("ctan", `:real^2->real^2`);
247 ("rotate2d", `:real->real^2->real^2`); ("Arg", `:real^2->real`);
248 ("pi", `:real`); ("log", `:real->real`); ("cos", `:real->real`);
249 ("sin", `:real->real`); ("exp", `:real->real`);
250 ("csin", `:real^2->real^2`); ("ccos", `:real^2->real^2`);
251 ("cexp", `:real^2->real^2`);
252 ("analytic_on", `:(real^2->real^2)->(real^2->bool)->bool`);
253 ("holomorphic_on", `:(real^2->real^2)->(real^2->bool)->bool`);
254 ("higher_complex_derivative", `:num->(real^2->real^2)->real^2->real^2`);
255 ("complex_derivative", `:(real^2->real^2)->real^2->real^2`);
256 ("complex_differentiable", `:(real^2->real^2)->(real^2)net->bool`);
257 ("has_complex_derivative", `:(real^2->real^2)->real^2->(real^2)net->bool`);
258 ("cproduct", `:(A->bool)->(A->real^2)->real^2`);
259 ("real", `:real^2->bool`); ("csqrt", `:real^2->real^2`);
260 ("cnj", `:real^2->real^2`); ("complex_pow", `:real^2->num->real^2`);
261 ("complex_div", `:real^2->real^2->real^2`);
262 ("complex_inv", `:real^2->real^2`);
263 ("complex_mul", `:real^2->real^2->real^2`); ("ii", `:real^2`);
264 ("Cx", `:real->real^2`); ("complex", `:real#real->real^2`);
265 ("Im", `:real^2->real`); ("Re", `:real^2->real`);
266 ("absolutely_integrable_on", `:(real^B->real^A)->(real^B->bool)->bool`);
267 ("negligible", `:(real^A->bool)->bool`);
268 ("indicator", `:(real^M->bool)->real^M->real^1`);
270 `:(real^N->bool)->((real^N->bool)->bool)->num#real->bool`);
271 ("lifted", `:(A->A->B)->(A)option->(A)option->(B)option`);
272 ("operative", `:(A->A->A)->((real^N->bool)->A)->bool`);
273 ("integral", `:(real^A->bool)->(real^A->real^B)->real^B`);
274 ("integrable_on", `:(real^B->real^A)->(real^B->bool)->bool`);
275 ("has_integral", `:(real^B->real^A)->real^A->(real^B->bool)->bool`);
276 ("has_integral_compact_interval",
277 `:(real^B->real^A)->real^A->(real^B->bool)->bool`);
278 ("fine", `:(A->B->bool)->(A#(B->bool)->bool)->bool`);
279 ("tagged_division_of",
280 `:(real^A#(real^A->bool)->bool)->(real^A->bool)->bool`);
281 ("tagged_partial_division_of",
282 `:(real^A#(real^A->bool)->bool)->(real^A->bool)->bool`);
283 ("division_of", `:((real^A->bool)->bool)->(real^A->bool)->bool`);
284 ("gauge", `:(real^A->real^A->bool)->bool`);
285 ("content", `:(real^M->bool)->real`);
286 ("interval_lowerbound", `:(real^M->bool)->real^M`);
287 ("interval_upperbound", `:(real^M->bool)->real^M`);
288 ("vector_derivative", `:(real^1->real^N)->(real^1)net->real^N`);
289 ("has_vector_derivative", `:(real^1->real^A)->real^A->(real^1)net->bool`);
290 ("jacobian", `:(real^A->real^B)->(real^A)net->real^A^B`);
291 ("frechet_derivative", `:(real^A->real^B)->(real^A)net->real^A->real^B`);
292 ("differentiable_on", `:(real^B->real^A)->(real^B->bool)->bool`);
293 ("differentiable", `:(real^B->real^A)->(real^B)net->bool`);
295 `:(real^B->real^A)->(real^B->real^A)->(real^B)net->bool`);
296 ("interval_bij", `:real^N#real^N->real^N#real^N->real^N->real^N`);
297 ("retract_of", `:(real^A->bool)->(real^A->bool)->bool`);
298 ("retraction", `:(real^N->bool)#(real^N->bool)->(real^N->real^N)->bool`);
299 ("reduced", `:((num->num)->num->num)->num->(num->num)->num`);
300 ("ksimplex", `:num->num->((num->num)->bool)->bool`);
301 ("kle", `:num->(num->num)->(num->num)->bool`);
302 ("path_connected", `:(real^A->bool)->bool`);
303 ("path_component", `:(real^A->bool)->real^A->real^A->bool`);
304 ("linepath", `:real^A#real^A->real^1->real^A`);
305 ("shiftpath", `:real^1->(real^1->real^N)->real^1->real^N`);
306 ("arc", `:(real^1->real^N)->bool`);
307 ("simple_path", `:(real^1->real^N)->bool`);
308 ("++", `:(real^1->A)->(real^1->A)->real^1->A`);
309 ("reversepath", `:(real^1->real^N)->real^1->real^N`);
310 ("path_image", `:(real^1->real^N)->real^N->bool`);
311 ("pathfinish", `:(real^1->real^N)->real^N`);
312 ("pathstart", `:(real^1->real^N)->real^N`);
313 ("path", `:(real^1->real^N)->bool`);
314 ("extreme_point_of", `:real^A->(real^A->bool)->bool`);
315 ("face_of", `:(real^A->bool)->(real^A->bool)->bool`);
316 ("relative_interior", `:(real^A->bool)->real^A->bool`);
317 ("starlike", `:(real^A->bool)->bool`);
319 `:(real^N->bool)->(real^N->real)->real^(N,1)finite_sum->bool`);
320 ("convex_on", `:(real^A->real)->(real^A->bool)->bool`);
321 ("coplanar", `:(real^A->bool)->bool`);
322 ("affine_dependent", `:(real^N->bool)->bool`);
323 ("conic", `:(real^A->bool)->bool`); ("convex", `:(real^A->bool)->bool`);
324 ("affine", `:(real^A->bool)->bool`);
325 ("closest_point", `:(real^A->bool)->real^A->real^A`);
326 ("from", `:num->num->bool`);
327 ("summable", `:(num->bool)->(num->real^A)->bool`);
328 ("infsum", `:(num->bool)->(num->real^A)->real^A`);
329 ("sums", `:(num->real^A)->real^A->(num->bool)->bool`);
330 ("homeomorphic", `:(real^A->bool)->(real^B->bool)->bool`);
332 `:(real^B->bool)#(real^A->bool)->(real^B->real^A)#(real^A->real^B)->bool`);
333 ("open_segment", `:real^A#real^A->real^A->bool`);
334 ("closed_segment", `:(real^A#real^A)list->real^A->bool`);
335 ("is_interval", `:(real^N->bool)->bool`);
336 ("closed_interval", `:(real^N#real^N)list->real^N->bool`);
337 ("open_interval", `:real^N#real^N->real^N->bool`);
338 ("diameter", `:(real^A->bool)->real`);
339 ("connected_component", `:(real^A->bool)->real^A->real^A->bool`);
340 ("uniformly_continuous_on", `:(real^B->real^A)->(real^B->bool)->bool`);
341 ("continuous_on", `:(real^B->real^A)->(real^B->bool)->bool`);
342 ("continuous", `:(B->real^A)->(B)net->bool`);
343 ("complete", `:(real^N->bool)->bool`); ("cauchy", `:(num->real^N)->bool`);
344 ("compact", `:(real^N->bool)->bool`);
345 ("bounded", `:(real^N->bool)->bool`); ("netlimit", `:(A)net->A`);
346 ("lim", `:(A)net->(A->real^B)->real^B`);
347 ("-->", `:(B->real^A)->real^A->(B)net->bool`);
348 ("eventually", `:(A->bool)->(A)net->bool`);
349 ("trivial_limit", `:(A)net->bool`);
350 ("in_direction", `:real^A->real^A->(real^A)net`);
351 ("within", `:(A)net->(A->bool)->(A)net`); ("sequentially", `:(num)net`);
352 ("at_infinity", `:(real^A)net`); ("at", `:real^A->(real^A)net`);
353 ("netord", `:(A)net->A->A->bool`); ("mk_net", `:(A->A->bool)->(A)net`);
354 ("frontier", `:(real^A->bool)->real^A->bool`);
355 ("closure", `:(real^A->bool)->real^A->bool`);
356 ("interior", `:(real^A->bool)->real^A->bool`);
357 ("limit_point_of", `:real^A->(real^A->bool)->bool`);
358 ("connected", `:(real^A->bool)->bool`);
359 ("cball", `:real^A#real->real^A->bool`);
360 ("ball", `:real^A#real->real^A->bool`);
361 ("euclidean", `:(real^A)topology`); ("closed", `:(real^N->bool)->bool`);
362 ("open", `:(real^A->bool)->bool`);
363 ("subtopology", `:(A)topology->(A->bool)->(A)topology`);
364 ("closed_in", `:(A)topology->(A->bool)->bool`);
365 ("topspace", `:(A)topology->A->bool`);
366 ("open_in", `:(A)topology->(A->bool)->bool`);
367 ("topology", `:((A->bool)->bool)->(A)topology`);
368 ("istopology", `:((A->bool)->bool)->bool`);
369 ("ITER", `:num->(A->A)->A->A`); ("frac", `:real->real`);
370 ("floor", `:real->real`); ("integer", `:real->bool`);
371 ("cross", `:real^3->real^3->real^3`);
372 ("rotoinversion_matrix", `:real^A^A->bool`);
373 ("rotation_matrix", `:real^A^A->bool`);
374 ("orthogonal_matrix", `:real^N^N->bool`);
375 ("orthogonal_transformation", `:(real^N->real^N)->bool`);
376 ("det", `:real^N^N->real`); ("trace", `:real^N^N->real`);
377 ("product", `:(A->bool)->(A->real)->real`); ("sign", `:(A->A)->real`);
378 ("evenperm", `:(A->A)->bool`); ("permutation", `:(A->A)->bool`);
379 ("swapseq", `:num->(A->A)->bool`); ("swap", `:A#A->A->A`);
380 ("inverse", `:(B->A)->A->B`); ("permutes", `:(A->A)->(A->bool)->bool`);
381 ("midpoint", `:real^A#real^A->real^A`);
382 ("between", `:real^A->real^A#real^A->bool`);
383 ("collinear", `:(real^A->bool)->bool`); ("infnorm", `:real^N->real`);
384 ("rank", `:real^M^N->num`); ("columnvector", `:real^N->real^1^N`);
385 ("rowvector", `:real^N->real^N^1`); ("dim", `:(real^A->bool)->num`);
386 ("independent", `:(real^A->bool)->bool`);
387 ("dependent", `:(real^A->bool)->bool`);
388 ("span", `:(real^A->bool)->real^A->bool`);
389 ("subspace", `:(real^A->bool)->bool`); ("drop", `:real^1->real`);
390 ("lift", `:real->real^1`); ("onorm", `:(real^M->real^N)->real`);
391 ("matrix", `:(real^M->real^N)->real^M^N`);
392 ("matrix_inv", `:real^N^M->real^M^N`); ("invertible", `:real^N^M->bool`);
393 ("columns", `:real^N^M->real^M->bool`);
394 ("rows", `:real^N^M->real^N->bool`); ("column", `:num->real^N^M->real^M`);
395 ("row", `:num->real^N^M->real^N`); ("transp", `:real^N^M->real^M^N`);
396 ("mat", `:num->real^N^M`);
397 ("vector_matrix_mul", `:real^M->real^N^M->real^N`);
398 ("matrix_vector_mul", `:real^N^M->real^N->real^M`);
399 ("matrix_mul", `:real^N^M->real^P^N->real^P^M`);
400 ("matrix_sub", `:real^N^M->real^N^M->real^N^M`);
401 ("matrix_add", `:real^N^M->real^N^M->real^N^M`);
402 ("matrix_neg", `:real^N^M->real^N^M`);
403 ("adjoint", `:(real^M->real^N)->real^N->real^M`);
404 ("bilinear", `:(real^A->real^B->real^C)->bool`);
405 ("linear", `:(real^M->real^N)->bool`);
406 ("orthogonal", `:real^A->real^A->bool`); ("basis", `:num->real^A`);
407 ("vsum", `:(A->bool)->(A->real^N)->real^N`);
408 ("distance", `:real^A#real^A->real`); ("vector_norm", `:real^A->real`);
409 ("dot", `:real^N->real^N->real`); ("vec", `:num->real^N`);
410 ("%", `:real->real^N->real^N`); ("vector_neg", `:real^N->real^N`);
411 ("vector_sub", `:real^N->real^N->real^N`);
412 ("vector_add", `:real^N->real^N->real^N`); ("sqrt", `:real->real`);
413 ("hull", `:((A->bool)->bool)->(A->bool)->A->bool`);
414 ("inf", `:(real->bool)->real`); ("sup", `:(real->bool)->real`);
416 `:(A->A->bool)->((A->C)->B->bool)->(B->A)->((A->C)->B->C)->bool`);
418 `:(A->A->bool)->((A->B)->P->bool)->(P->A)->((A->B)->P->B)->bool`);
420 `:(B->A->bool)->((B->C)->D->bool)->(D->A)->((B->C)->D->E)->bool`);
421 ("CASEWISE", `:((A->C)#(B->A->D))list->B->C->D`);
422 ("vector", `:(A)list->A^N`);
423 ("dest_auto_define_finite_type_3", `:3->num`);
424 ("mk_auto_define_finite_type_3", `:num->3`);
425 ("dest_auto_define_finite_type_2", `:2->num`);
426 ("mk_auto_define_finite_type_2", `:num->2`);
427 ("sndcart", `:A^(M,N)finite_sum->A^N`);
428 ("fstcart", `:A^(M,N)finite_sum->A^M`);
429 ("pastecart", `:A^M->A^N->A^(M,N)finite_sum`);
430 ("dest_finite_sum", `:(A,B)finite_sum->num`);
431 ("mk_finite_sum", `:num->(A,B)finite_sum`); ("lambda", `:(num->A)->A^B`);
432 ("$", `:B^A->num->B`); ("dest_cart", `:A^B->(B)finite_image->A`);
433 ("mk_cart", `:((B)finite_image->A)->A^B`);
434 ("dest_finite_image", `:(A)finite_image->num`);
435 ("finite_index", `:num->(A)finite_image`);
436 ("dimindex", `:(A->bool)->num`); ("sum", `:(A->bool)->(A->real)->real`);
437 ("nsum", `:(A->bool)->(A->num)->num`);
438 ("iterate", `:(B->B->B)->(A->bool)->(A->B)->B`);
439 ("support", `:(B->B->B)->(A->B)->(A->bool)->A->bool`);
440 ("monoidal", `:(A->A->A)->bool`); ("neutral", `:(A->A->A)->A`);
441 ("..", `:num->num->num->bool`); ("COUNTABLE", `:(A->bool)->bool`);
442 (">_c", `:(A->bool)->(B->bool)->bool`);
443 (">=_c", `:(A->bool)->(B->bool)->bool`);
444 ("=_c", `:(A->bool)->(B->bool)->bool`);
445 ("<_c", `:(A->bool)->(B->bool)->bool`);
446 ("<=_c", `:(A->bool)->(B->bool)->bool`);
447 ("PAIRWISE", `:(A->A->bool)->(A)list->bool`);
448 ("pairwise", `:(A->A->bool)->(A->bool)->bool`);
449 ("list_of_set", `:(A->bool)->(A)list`);
450 ("set_of_list", `:(A)list->A->bool`);
451 ("CROSS", `:(A->bool)->(B->bool)->A#B->bool`);
452 ("HAS_SIZE", `:(A->bool)->num->bool`); ("CARD", `:(A->bool)->num`);
453 ("ITSET", `:(A->B->B)->(A->bool)->B->B`);
454 ("FINREC", `:(A->B->B)->B->(A->bool)->B->num->bool`);
455 ("REST", `:(A->bool)->A->bool`); ("CHOICE", `:(A->bool)->A`);
456 ("BIJ", `:(A->B)->(A->bool)->(B->bool)->bool`);
457 ("SURJ", `:(A->B)->(A->bool)->(B->bool)->bool`);
458 ("INJ", `:(A->B)->(A->bool)->(B->bool)->bool`);
459 ("IMAGE", `:(A->B)->(A->bool)->B->bool`);
460 ("INFINITE", `:(A->bool)->bool`); ("FINITE", `:(A->bool)->bool`);
461 ("SING", `:(A->bool)->bool`); ("DISJOINT", `:(A->bool)->(A->bool)->bool`);
462 ("PSUBSET", `:(A->bool)->(A->bool)->bool`);
463 ("SUBSET", `:(A->bool)->(A->bool)->bool`);
464 ("DELETE", `:(A->bool)->A->A->bool`);
465 ("DIFF", `:(A->bool)->(A->bool)->A->bool`);
466 ("INTERS", `:((A->bool)->bool)->A->bool`);
467 ("INTER", `:(A->bool)->(A->bool)->A->bool`);
468 ("UNIONS", `:((A->bool)->bool)->A->bool`);
469 ("UNION", `:(A->bool)->(A->bool)->A->bool`); ("UNIV", `:A->bool`);
470 ("INSERT", `:A->(A->bool)->A->bool`); ("EMPTY", `:A->bool`);
471 ("SETSPEC", `:A->bool->A->bool`); ("GSPEC", `:(A->bool)->A->bool`);
472 ("IN", `:A->(A->bool)->bool`); ("num_gcd", `:num#num->num`);
473 ("num_coprime", `:num#num->bool`); ("num_mod", `:num->num->num->bool`);
474 ("num_divides", `:num->num->bool`); ("num_of_int", `:int->num`);
475 ("int_gcd", `:int#int->int`); ("int_coprime", `:int#int->bool`);
476 ("int_mod", `:int->int->int->bool`); ("int_divides", `:int->int->bool`);
477 ("real_mod", `:real->real->real->bool`);
478 ("==", `:A->A->(A->A->bool)->bool`); ("rem", `:int->int->int`);
479 ("div", `:int->int->int`); ("int_pow", `:int->num->int`);
480 ("int_min", `:int->int->int`); ("int_max", `:int->int->int`);
481 ("int_abs", `:int->int`); ("int_mul", `:int->int->int`);
482 ("int_sub", `:int->int->int`); ("int_add", `:int->int->int`);
483 ("int_neg", `:int->int`); ("int_of_num", `:num->int`);
484 ("int_gt", `:int->int->bool`); ("int_ge", `:int->int->bool`);
485 ("int_lt", `:int->int->bool`); ("int_le", `:int->int->bool`);
486 ("real_of_int", `:int->real`); ("int_of_real", `:real->int`);
487 ("is_int", `:real->bool`); ("DECIMAL", `:num->num->real`);
488 ("real_min", `:real->real->real`); ("real_max", `:real->real->real`);
489 ("real_div", `:real->real->real`); ("real_pow", `:real->num->real`);
490 ("real_abs", `:real->real`); ("real_gt", `:real->real->bool`);
491 ("real_ge", `:real->real->bool`); ("real_lt", `:real->real->bool`);
492 ("real_sub", `:real->real->real`); ("real_inv", `:real->real`);
493 ("real_le", `:real->real->bool`); ("real_mul", `:real->real->real`);
494 ("real_add", `:real->real->real`); ("real_neg", `:real->real`);
495 ("real_of_num", `:num->real`); ("dest_real", `:real->hreal#hreal->bool`);
496 ("mk_real", `:(hreal#hreal->bool)->real`);
497 ("treal_eq", `:hreal#hreal->hreal#hreal->bool`);
498 ("treal_inv", `:hreal#hreal->hreal#hreal`);
499 ("treal_le", `:hreal#hreal->hreal#hreal->bool`);
500 ("treal_mul", `:hreal#hreal->hreal#hreal->hreal#hreal`);
501 ("treal_add", `:hreal#hreal->hreal#hreal->hreal#hreal`);
502 ("treal_neg", `:hreal#hreal->hreal#hreal`);
503 ("treal_of_num", `:num->hreal#hreal`); ("hreal_inv", `:hreal->hreal`);
504 ("hreal_le", `:hreal->hreal->bool`);
505 ("hreal_mul", `:hreal->hreal->hreal`);
506 ("hreal_add", `:hreal->hreal->hreal`); ("hreal_of_num", `:num->hreal`);
507 ("dest_hreal", `:hreal->nadd->bool`);
508 ("mk_hreal", `:(nadd->bool)->hreal`); ("nadd_inv", `:nadd->nadd`);
509 ("nadd_rinv", `:nadd->num->num`); ("nadd_mul", `:nadd->nadd->nadd`);
510 ("nadd_add", `:nadd->nadd->nadd`); ("nadd_le", `:nadd->nadd->bool`);
511 ("nadd_of_num", `:num->nadd`); ("nadd_eq", `:nadd->nadd->bool`);
512 ("dest_nadd", `:nadd->num->num`); ("mk_nadd", `:(num->num)->nadd`);
513 ("is_nadd", `:(num->num)->bool`); ("dist", `:num#num->num`);
514 ("ASCII", `:bool->bool->bool->bool->bool->bool->bool->bool->char`);
515 ("_16756", `:bool->bool->bool->bool->bool->bool->bool->bool->char`);
516 ("_dest_char", `:char->(bool#bool#bool#bool#bool#bool#bool#bool)recspace`);
517 ("_mk_char", `:(bool#bool#bool#bool#bool#bool#bool#bool)recspace->char`);
518 ("ZIP", `:(A)list->(B)list->(A#B)list`);
519 ("ITLIST2", `:(A->B->C->C)->(A)list->(B)list->C->C`);
520 ("ASSOC", `:A->(A#B)list->B`); ("FILTER", `:(A->bool)->(A)list->(A)list`);
521 ("EL", `:num->(A)list->A`);
522 ("MAP2", `:(A->B->C)->(A)list->(B)list->(C)list`);
523 ("ALL2", `:(A->B->bool)->(A)list->(B)list->bool`);
524 ("MEM", `:A->(A)list->bool`); ("ITLIST", `:(A->B->B)->(A)list->B->B`);
525 ("EX", `:(A->bool)->(A)list->bool`); ("ALL", `:(A->bool)->(A)list->bool`);
526 ("NULL", `:(A)list->bool`); ("REPLICATE", `:num->A->(A)list`);
527 ("LAST", `:(A)list->A`); ("MAP", `:(A->B)->(A)list->(B)list`);
528 ("LENGTH", `:(A)list->num`); ("REVERSE", `:(A)list->(A)list`);
529 ("APPEND", `:(A)list->(A)list->(A)list`); ("TL", `:(A)list->(A)list`);
530 ("HD", `:(A)list->A`); ("ISO", `:(A->B)->(B->A)->bool`);
531 ("CONS", `:A->(A)list->(A)list`); ("NIL", `:(A)list`);
532 ("_dest_list", `:(A)list->(A)recspace`);
533 ("_mk_list", `:(A)recspace->(A)list`); ("SOME", `:A->(A)option`);
534 ("NONE", `:(A)option`); ("_dest_option", `:(A)option->(A)recspace`);
535 ("_mk_option", `:(A)recspace->(A)option`); ("OUTR", `:A+B->B`);
536 ("OUTL", `:A+B->A`); ("INR", `:B->A+B`); ("INL", `:A->A+B`);
537 ("_dest_sum", `:A+B->(A#B)recspace`); ("_mk_sum", `:(A#B)recspace->A+B`);
538 ("FNIL", `:num->A`); ("FCONS", `:A->(num->A)->num->A`);
539 ("CONSTR", `:num->A->(num->(A)recspace)->(A)recspace`);
540 ("BOTTOM", `:(A)recspace`); ("_dest_rec", `:(A)recspace->num->A->bool`);
541 ("_mk_rec", `:(num->A->bool)->(A)recspace`);
542 ("ZRECSPACE", `:(num->A->bool)->bool`); ("ZBOT", `:num->A->bool`);
543 ("ZCONSTR", `:num->A->(num->num->A->bool)->num->A->bool`);
544 ("INJP", `:(num->A->bool)->(num->A->bool)->num->A->bool`);
545 ("INJF", `:(num->num->A->bool)->num->A->bool`);
546 ("INJA", `:A->num->A->bool`); ("INJN", `:num->num->A->bool`);
547 ("NUMRIGHT", `:num->num`); ("NUMLEFT", `:num->bool`);
548 ("NUMSUM", `:bool->num->num`); ("NUMSND", `:num->num`);
549 ("NUMFST", `:num->num`); ("NUMPAIR", `:num->num->num`);
550 ("MEASURE", `:(A->num)->A->A->bool`); ("WF", `:(A->A->bool)->bool`);
551 ("minimal", `:(num->bool)->num`); ("MIN", `:num->num->num`);
552 ("MAX", `:num->num->num`); ("MOD", `:num->num->num`);
553 ("DIV", `:num->num->num`); ("FACT", `:num->num`); ("-", `:num->num->num`);
554 ("ODD", `:num->bool`); ("EVEN", `:num->bool`); (">", `:num->num->bool`);
555 (">=", `:num->num->bool`); ("<", `:num->num->bool`);
556 ("<=", `:num->num->bool`); ("EXP", `:num->num->num`);
557 ("*", `:num->num->num`); ("BIT1", `:num->num`); ("BIT0", `:num->num`);
558 ("+", `:num->num->num`); ("PRE", `:num->num`); ("NUMERAL", `:num->num`);
559 ("SUC", `:num->num`); ("_0", `:num`); ("dest_num", `:num->ind`);
560 ("mk_num", `:ind->num`); ("NUM_REP", `:ind->bool`); ("IND_0", `:ind`);
561 ("IND_SUC", `:ind->ind`); ("ONTO", `:(A->B)->bool`);
562 ("ONE_ONE", `:(A->B)->bool`); ("PASSOC", `:((A#B)#C->D)->A#B#C->D`);
563 ("UNCURRY", `:(A->B->C)->A#B->C`); ("CURRY", `:(A#B->C)->A->B->C`);
564 ("SND", `:A#B->B`); ("FST", `:A#B->A`); (",", `:A->B->A#B`);
565 ("REP_prod", `:A#B->A->B->bool`); ("ABS_prod", `:(A->B->bool)->A#B`);
566 ("mk_pair", `:A->B->A->B->bool`); ("_FUNCTION", `:(A->B->bool)->A->B`);
567 ("_MATCH", `:A->(A->B->bool)->B`);
568 ("_GUARDED_PATTERN", `:bool->bool->bool->bool`);
569 ("_UNGUARDED_PATTERN", `:bool->bool->bool`);
570 ("_SEQPATTERN", `:(A->B->bool)->(A->B->bool)->A->B->bool`);
571 ("GEQ", `:A->A->bool`); ("GABS", `:(A->bool)->A`); ("LET_END", `:A->A`);
572 ("LET", `:(A->B)->A->B`); ("one", `:1`); ("one_REP", `:1->bool`);
573 ("one_ABS", `:bool->1`); ("I", `:A->A`); ("o", `:(B->C)->(A->B)->A->C`);
574 ("COND", `:bool->A->A->A`); ("@", `:(A->bool)->A`);
575 ("_FALSITY_", `:bool`); ("?!", `:(A->bool)->bool`); ("~", `:bool->bool`);
576 ("F", `:bool`); ("\\/", `:bool->bool->bool`); ("?", `:(A->bool)->bool`);
577 ("!", `:(A->bool)->bool`); ("==>", `:bool->bool->bool`);
578 ("/\\", `:bool->bool->bool`); ("T", `:bool`); ("=", `:A->A->bool`)];;
583 module Snapshot_v220_7_31_2009 : Snapshot_type = struct
586 [("SDIFF", `:(A->bool)->(A->bool)->A->bool`);
587 ("vol_ball_wedge", `:real^3->real^3->real^3->real^3->real->real`);
588 ("vol_rect", `:real^A->real^B->real`);
589 ("vol_conv", `:real^A->real^A->real^A->real^A->real`);
590 ("vol_conic_cap_wedge",
591 `:real^3->real^3->real^3->real^3->real->real->real`);
592 ("vol_frustt_wedge", `:real^3->real^3->real^3->real^3->real->real->real`);
593 ("vol_solid_triangle", `:real^A->real^A->real^A->real^A->real->real`);
594 ("primitive", `:(real^3->bool)->bool`);
595 ("circular_cone", `:(real^3->bool)->bool`);
596 ("c_cone", `:real^3#real^3#real->real^3->bool`);
597 ("sphere", `:(real^3->bool)->bool`);
598 ("rect", `:real^3->real^3->real^3->bool`);
599 ("solid_triangle", `:real^A->(real^A->bool)->real->real^A->bool`);
600 ("cone0", `:real^A->(real^A->bool)->real^A->bool`);
601 ("cone", `:real^A->(real^A->bool)->real^A->bool`);
602 ("dihV", `:real^A->real^A->real^A->real^A->real`);
603 ("opposite", `:real^N->real^N->(real^N->bool)->bool`);
604 ("wedge", `:real^3->real^3->real^3->real^3->real^3->bool`);
605 ("azim", `:real^3->real^3->real^3->real^3->real`);
606 ("arcV", `:real^A->real^A->real^A->real`);
607 ("orthonormal", `:real^3->real^3->real^3->bool`);
608 ("conic_cap", `:real^A->real^A->real->real->real^A->bool`);
609 ("ellipsoid", `:real^3->real->real^3->bool`);
610 ("normball", `:real^A->real->real^A->bool`);
611 ("scale", `:real^3->real^3->real^3`);
612 ("frustt", `:real^A->real^A->real->real->real^A->bool`);
613 ("frustum", `:real^N->real^N->real->real->real->real^N->bool`);
614 ("rcone_eq", `:real^A->real^A->real->real^A->bool`);
615 ("rcone_ge", `:real^A->real^A->real->real^A->bool`);
616 ("rcone_gt", `:real^A->real^A->real->real^A->bool`);
617 ("rconesgn", `:(real->real->bool)->real^A->real^A->real->real^A->bool`);
618 ("delta_x", `:real->real->real->real->real->real->real`);
619 ("conv0", `:(real^A->bool)->real^A->bool`);
620 ("aff_le", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
621 ("aff_lt", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
622 ("aff_ge", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
623 ("aff_gt", `:(real^A->bool)->(real^A->bool)->real^A->bool`);
624 ("sgn_le", `:real->bool`); ("sgn_lt", `:real->bool`);
625 ("sgn_ge", `:real->bool`); ("sgn_gt", `:real->bool`);
626 ("affsign", `:(real->bool)->(real^A->bool)->(real^A->bool)->real^A->bool`);
627 ("lin_combo", `:(real^N->bool)->(real^N->real)->real^N`);
628 ("pad2d3d", `:real^2->real^3`); ("plane", `:(real^A->bool)->bool`);
629 ("slice", `:num->real->(real^A->bool)->real^B->bool`);
630 ("pushin", `:num->B->B^A->B^C`); ("dropout", `:num->real^N->real^M`);
631 ("real_measure", `:(real->bool)->real`);
632 ("real_measurable", `:(real->bool)->bool`);
633 ("has_real_measure", `:(real->bool)->real->bool`);
634 ("absolutely_real_integrable_on", `:(real->real)->(real->bool)->bool`);
635 ("real_negligible", `:(real->bool)->bool`);
636 ("real_integral", `:(real->bool)->(real->real)->real`);
637 ("real_integrable_on", `:(real->real)->(real->bool)->bool`);
638 ("has_real_integral", `:(real->real)->real->(real->bool)->bool`);
639 ("closed_real_interval", `:(real#real)list->real->bool`);
640 ("open_real_interval", `:real#real->real->bool`);
641 ("is_realinterval", `:(real->bool)->bool`);
642 ("real_differentiable_on", `:(real->real)->(real->bool)->bool`);
643 ("higher_real_derivative", `:num->(real->real)->real->real`);
644 ("real_derivative", `:(real->real)->real->real`);
645 ("real_differentiable", `:(real->real)->(real)net->bool`);
646 ("has_real_derivative", `:(real->real)->real->(real)net->bool`);
647 ("real_continuous_on", `:(real->real)->(real->bool)->bool`);
648 ("real_continuous", `:(A->real)->(A)net->bool`);
649 ("at_neginfinity", `:(real)net`); ("at_posinfinity", `:(real)net`);
650 ("atreal", `:real->(real)net`);
651 ("real_summable", `:(num->bool)->(num->real)->bool`);
652 ("real_infsum", `:(num->bool)->(num->real)->real`);
653 ("real_sums", `:(num->real)->real->(num->bool)->bool`);
654 ("--->", `:(A->real)->real->(A)net->bool`);
655 ("real_compact", `:(real->bool)->bool`);
656 ("real_bounded", `:(real->bool)->bool`);
657 ("euclideanreal", `:(real)topology`);
658 ("real_closed", `:(real->bool)->bool`);
659 ("real_open", `:(real->bool)->bool`);
660 ("measure", `:(real^A->bool)->real`);
661 ("measurable", `:(real^A->bool)->bool`);
662 ("has_measure", `:(real^A->bool)->real->bool`);
663 ("*_c", `:(A->bool)->(B->bool)->A#B->bool`);
664 ("+_c", `:(A->bool)->(B->bool)->A+B->bool`);
665 ("ordinal", `:(A#A->bool)->bool`);
666 ("linseg", `:(A#A->bool)->A->A#A->bool`);
667 ("inseg", `:(A#A->bool)->(A#A->bool)->bool`);
668 ("woset", `:(A#A->bool)->bool`);
669 ("chain", `:(A#A->bool)->(A->bool)->bool`);
670 ("poset", `:(A#A->bool)->bool`); ("fl", `:(A#A->bool)->A->bool`);
671 ("less", `:(A#A->bool)->A#A->bool`);
672 ("angle", `:real^A#real^A#real^A->real`);
673 ("vector_angle", `:real^A->real^A->real`); ("acs", `:real->real`);
674 ("asn", `:real->real`); ("cacs", `:real^2->real^2`);
675 ("casn", `:real^2->real^2`); ("atn", `:real->real`);
676 ("catn", `:real^2->real^2`); ("unwinding", `:real^2->real^2`);
677 ("cpow", `:real^2->real^2->real^2`); ("clog", `:real^2->real^2`);
678 ("tan", `:real->real`); ("ctan", `:real^2->real^2`);
679 ("rotate2d", `:real->real^2->real^2`); ("Arg", `:real^2->real`);
680 ("pi", `:real`); ("log", `:real->real`); ("cos", `:real->real`);
681 ("sin", `:real->real`); ("exp", `:real->real`);
682 ("csin", `:real^2->real^2`); ("ccos", `:real^2->real^2`);
683 ("cexp", `:real^2->real^2`);
684 ("analytic_on", `:(real^2->real^2)->(real^2->bool)->bool`);
685 ("holomorphic_on", `:(real^2->real^2)->(real^2->bool)->bool`);
686 ("higher_complex_derivative", `:num->(real^2->real^2)->real^2->real^2`);
687 ("complex_derivative", `:(real^2->real^2)->real^2->real^2`);
688 ("complex_differentiable", `:(real^2->real^2)->(real^2)net->bool`);
689 ("has_complex_derivative", `:(real^2->real^2)->real^2->(real^2)net->bool`);
690 ("cproduct", `:(A->bool)->(A->real^2)->real^2`);
691 ("real", `:real^2->bool`); ("csqrt", `:real^2->real^2`);
692 ("cnj", `:real^2->real^2`); ("complex_pow", `:real^2->num->real^2`);
693 ("complex_div", `:real^2->real^2->real^2`);
694 ("complex_inv", `:real^2->real^2`);
695 ("complex_mul", `:real^2->real^2->real^2`); ("ii", `:real^2`);
696 ("Cx", `:real->real^2`); ("complex", `:real#real->real^2`);
697 ("Im", `:real^2->real`); ("Re", `:real^2->real`);
698 ("absolutely_integrable_on", `:(real^B->real^A)->(real^B->bool)->bool`);
699 ("negligible", `:(real^A->bool)->bool`);
700 ("indicator", `:(real^M->bool)->real^M->real^1`);
702 `:(real^N->bool)->((real^N->bool)->bool)->num#real->bool`);
703 ("lifted", `:(A->A->B)->(A)option->(A)option->(B)option`);
704 ("operative", `:(A->A->A)->((real^N->bool)->A)->bool`);
705 ("integral", `:(real^A->bool)->(real^A->real^B)->real^B`);
706 ("integrable_on", `:(real^B->real^A)->(real^B->bool)->bool`);
707 ("has_integral", `:(real^B->real^A)->real^A->(real^B->bool)->bool`);
708 ("has_integral_compact_interval",
709 `:(real^B->real^A)->real^A->(real^B->bool)->bool`);
710 ("fine", `:(A->B->bool)->(A#(B->bool)->bool)->bool`);
711 ("tagged_division_of",
712 `:(real^A#(real^A->bool)->bool)->(real^A->bool)->bool`);
713 ("tagged_partial_division_of",
714 `:(real^A#(real^A->bool)->bool)->(real^A->bool)->bool`);
715 ("division_of", `:((real^A->bool)->bool)->(real^A->bool)->bool`);
716 ("gauge", `:(real^A->real^A->bool)->bool`);
717 ("content", `:(real^M->bool)->real`);
718 ("interval_lowerbound", `:(real^M->bool)->real^M`);
719 ("interval_upperbound", `:(real^M->bool)->real^M`);
720 ("vector_derivative", `:(real^1->real^N)->(real^1)net->real^N`);
721 ("has_vector_derivative", `:(real^1->real^A)->real^A->(real^1)net->bool`);
722 ("jacobian", `:(real^A->real^B)->(real^A)net->real^A^B`);
723 ("frechet_derivative", `:(real^A->real^B)->(real^A)net->real^A->real^B`);
724 ("differentiable_on", `:(real^B->real^A)->(real^B->bool)->bool`);
725 ("differentiable", `:(real^B->real^A)->(real^B)net->bool`);
727 `:(real^B->real^A)->(real^B->real^A)->(real^B)net->bool`);
728 ("interval_bij", `:real^N#real^N->real^N#real^N->real^N->real^N`);
729 ("retract_of", `:(real^A->bool)->(real^A->bool)->bool`);
730 ("retraction", `:(real^N->bool)#(real^N->bool)->(real^N->real^N)->bool`);
731 ("reduced", `:((num->num)->num->num)->num->(num->num)->num`);
732 ("ksimplex", `:num->num->((num->num)->bool)->bool`);
733 ("kle", `:num->(num->num)->(num->num)->bool`);
734 ("path_connected", `:(real^A->bool)->bool`);
735 ("path_component", `:(real^A->bool)->real^A->real^A->bool`);
736 ("linepath", `:real^A#real^A->real^1->real^A`);
737 ("shiftpath", `:real^1->(real^1->real^N)->real^1->real^N`);
738 ("arc", `:(real^1->real^N)->bool`);
739 ("simple_path", `:(real^1->real^N)->bool`);
740 ("++", `:(real^1->A)->(real^1->A)->real^1->A`);
741 ("reversepath", `:(real^1->real^N)->real^1->real^N`);
742 ("path_image", `:(real^1->real^N)->real^N->bool`);
743 ("pathfinish", `:(real^1->real^N)->real^N`);
744 ("pathstart", `:(real^1->real^N)->real^N`);
745 ("path", `:(real^1->real^N)->bool`);
746 ("extreme_point_of", `:real^A->(real^A->bool)->bool`);
747 ("face_of", `:(real^A->bool)->(real^A->bool)->bool`);
748 ("relative_interior", `:(real^A->bool)->real^A->bool`);
749 ("starlike", `:(real^A->bool)->bool`);
751 `:(real^N->bool)->(real^N->real)->real^(N,1)finite_sum->bool`);
752 ("convex_on", `:(real^A->real)->(real^A->bool)->bool`);
753 ("coplanar", `:(real^A->bool)->bool`);
754 ("affine_dependent", `:(real^N->bool)->bool`);
755 ("conic", `:(real^A->bool)->bool`); ("convex", `:(real^A->bool)->bool`);
756 ("affine", `:(real^A->bool)->bool`);
757 ("closest_point", `:(real^A->bool)->real^A->real^A`);
758 ("from", `:num->num->bool`);
759 ("summable", `:(num->bool)->(num->real^A)->bool`);
760 ("infsum", `:(num->bool)->(num->real^A)->real^A`);
761 ("sums", `:(num->real^A)->real^A->(num->bool)->bool`);
762 ("homeomorphic", `:(real^A->bool)->(real^B->bool)->bool`);
764 `:(real^B->bool)#(real^A->bool)->(real^B->real^A)#(real^A->real^B)->bool`);
765 ("open_segment", `:real^A#real^A->real^A->bool`);
766 ("closed_segment", `:(real^A#real^A)list->real^A->bool`);
767 ("is_interval", `:(real^N->bool)->bool`);
768 ("closed_interval", `:(real^N#real^N)list->real^N->bool`);
769 ("open_interval", `:real^N#real^N->real^N->bool`);
770 ("diameter", `:(real^A->bool)->real`);
771 ("connected_component", `:(real^A->bool)->real^A->real^A->bool`);
772 ("uniformly_continuous_on", `:(real^B->real^A)->(real^B->bool)->bool`);
773 ("continuous_on", `:(real^B->real^A)->(real^B->bool)->bool`);
774 ("continuous", `:(B->real^A)->(B)net->bool`);
775 ("complete", `:(real^N->bool)->bool`); ("cauchy", `:(num->real^N)->bool`);
776 ("compact", `:(real^N->bool)->bool`);
777 ("bounded", `:(real^N->bool)->bool`); ("netlimit", `:(A)net->A`);
778 ("lim", `:(A)net->(A->real^B)->real^B`);
779 ("-->", `:(B->real^A)->real^A->(B)net->bool`);
780 ("eventually", `:(A->bool)->(A)net->bool`);
781 ("trivial_limit", `:(A)net->bool`);
782 ("in_direction", `:real^A->real^A->(real^A)net`);
783 ("within", `:(A)net->(A->bool)->(A)net`); ("sequentially", `:(num)net`);
784 ("at_infinity", `:(real^A)net`); ("at", `:real^A->(real^A)net`);
785 ("netord", `:(A)net->A->A->bool`); ("mk_net", `:(A->A->bool)->(A)net`);
786 ("frontier", `:(real^A->bool)->real^A->bool`);
787 ("closure", `:(real^A->bool)->real^A->bool`);
788 ("interior", `:(real^A->bool)->real^A->bool`);
789 ("limit_point_of", `:real^A->(real^A->bool)->bool`);
790 ("connected", `:(real^A->bool)->bool`);
791 ("cball", `:real^A#real->real^A->bool`);
792 ("ball", `:real^A#real->real^A->bool`);
793 ("euclidean", `:(real^A)topology`); ("closed", `:(real^N->bool)->bool`);
794 ("open", `:(real^A->bool)->bool`);
795 ("subtopology", `:(A)topology->(A->bool)->(A)topology`);
796 ("closed_in", `:(A)topology->(A->bool)->bool`);
797 ("topspace", `:(A)topology->A->bool`);
798 ("open_in", `:(A)topology->(A->bool)->bool`);
799 ("topology", `:((A->bool)->bool)->(A)topology`);
800 ("istopology", `:((A->bool)->bool)->bool`);
801 ("ITER", `:num->(A->A)->A->A`); ("frac", `:real->real`);
802 ("floor", `:real->real`); ("integer", `:real->bool`);
803 ("cross", `:real^3->real^3->real^3`);
804 ("rotoinversion_matrix", `:real^A^A->bool`);
805 ("rotation_matrix", `:real^A^A->bool`);
806 ("orthogonal_matrix", `:real^N^N->bool`);
807 ("orthogonal_transformation", `:(real^N->real^N)->bool`);
808 ("det", `:real^N^N->real`); ("trace", `:real^N^N->real`);
809 ("product", `:(A->bool)->(A->real)->real`); ("sign", `:(A->A)->real`);
810 ("evenperm", `:(A->A)->bool`); ("permutation", `:(A->A)->bool`);
811 ("swapseq", `:num->(A->A)->bool`); ("swap", `:A#A->A->A`);
812 ("inverse", `:(B->A)->A->B`); ("permutes", `:(A->A)->(A->bool)->bool`);
813 ("midpoint", `:real^A#real^A->real^A`);
814 ("between", `:real^A->real^A#real^A->bool`);
815 ("collinear", `:(real^A->bool)->bool`); ("infnorm", `:real^N->real`);
816 ("rank", `:real^M^N->num`); ("columnvector", `:real^N->real^1^N`);
817 ("rowvector", `:real^N->real^N^1`); ("dim", `:(real^A->bool)->num`);
818 ("independent", `:(real^A->bool)->bool`);
819 ("dependent", `:(real^A->bool)->bool`);
820 ("span", `:(real^A->bool)->real^A->bool`);
821 ("subspace", `:(real^A->bool)->bool`); ("drop", `:real^1->real`);
822 ("lift", `:real->real^1`); ("onorm", `:(real^M->real^N)->real`);
823 ("matrix", `:(real^M->real^N)->real^M^N`);
824 ("matrix_inv", `:real^N^M->real^M^N`); ("invertible", `:real^N^M->bool`);
825 ("columns", `:real^N^M->real^M->bool`);
826 ("rows", `:real^N^M->real^N->bool`); ("column", `:num->real^N^M->real^M`);
827 ("row", `:num->real^N^M->real^N`); ("transp", `:real^N^M->real^M^N`);
828 ("mat", `:num->real^N^M`);
829 ("vector_matrix_mul", `:real^M->real^N^M->real^N`);
830 ("matrix_vector_mul", `:real^N^M->real^N->real^M`);
831 ("matrix_mul", `:real^N^M->real^P^N->real^P^M`);
832 ("matrix_sub", `:real^N^M->real^N^M->real^N^M`);
833 ("matrix_add", `:real^N^M->real^N^M->real^N^M`);
834 ("matrix_neg", `:real^N^M->real^N^M`);
835 ("adjoint", `:(real^M->real^N)->real^N->real^M`);
836 ("bilinear", `:(real^A->real^B->real^C)->bool`);
837 ("linear", `:(real^M->real^N)->bool`);
838 ("orthogonal", `:real^A->real^A->bool`); ("basis", `:num->real^A`);
839 ("vsum", `:(A->bool)->(A->real^N)->real^N`);
840 ("distance", `:real^A#real^A->real`); ("vector_norm", `:real^A->real`);
841 ("dot", `:real^N->real^N->real`); ("vec", `:num->real^N`);
842 ("%", `:real->real^N->real^N`); ("vector_neg", `:real^N->real^N`);
843 ("vector_sub", `:real^N->real^N->real^N`);
844 ("vector_add", `:real^N->real^N->real^N`); ("sqrt", `:real->real`);
845 ("hull", `:((A->bool)->bool)->(A->bool)->A->bool`);
846 ("inf", `:(real->bool)->real`); ("sup", `:(real->bool)->real`);
848 `:(A->A->bool)->((A->C)->B->bool)->(B->A)->((A->C)->B->C)->bool`);
850 `:(A->A->bool)->((A->B)->P->bool)->(P->A)->((A->B)->P->B)->bool`);
852 `:(B->A->bool)->((B->C)->D->bool)->(D->A)->((B->C)->D->E)->bool`);
853 ("CASEWISE", `:((A->C)#(B->A->D))list->B->C->D`);
854 ("vector", `:(A)list->A^N`);
855 ("dest_auto_define_finite_type_3", `:3->num`);
856 ("mk_auto_define_finite_type_3", `:num->3`);
857 ("dest_auto_define_finite_type_2", `:2->num`);
858 ("mk_auto_define_finite_type_2", `:num->2`);
859 ("sndcart", `:A^(M,N)finite_sum->A^N`);
860 ("fstcart", `:A^(M,N)finite_sum->A^M`);
861 ("pastecart", `:A^M->A^N->A^(M,N)finite_sum`);
862 ("dest_finite_sum", `:(A,B)finite_sum->num`);
863 ("mk_finite_sum", `:num->(A,B)finite_sum`); ("lambda", `:(num->A)->A^B`);
864 ("$", `:B^A->num->B`); ("dest_cart", `:A^B->(B)finite_image->A`);
865 ("mk_cart", `:((B)finite_image->A)->A^B`);
866 ("dest_finite_image", `:(A)finite_image->num`);
867 ("finite_index", `:num->(A)finite_image`);
868 ("dimindex", `:(A->bool)->num`); ("sum", `:(A->bool)->(A->real)->real`);
869 ("nsum", `:(A->bool)->(A->num)->num`);
870 ("iterate", `:(B->B->B)->(A->bool)->(A->B)->B`);
871 ("support", `:(B->B->B)->(A->B)->(A->bool)->A->bool`);
872 ("monoidal", `:(A->A->A)->bool`); ("neutral", `:(A->A->A)->A`);
873 ("..", `:num->num->num->bool`); ("COUNTABLE", `:(A->bool)->bool`);
874 (">_c", `:(A->bool)->(B->bool)->bool`);
875 (">=_c", `:(A->bool)->(B->bool)->bool`);
876 ("=_c", `:(A->bool)->(B->bool)->bool`);
877 ("<_c", `:(A->bool)->(B->bool)->bool`);
878 ("<=_c", `:(A->bool)->(B->bool)->bool`);
879 ("PAIRWISE", `:(A->A->bool)->(A)list->bool`);
880 ("pairwise", `:(A->A->bool)->(A->bool)->bool`);
881 ("list_of_set", `:(A->bool)->(A)list`);
882 ("set_of_list", `:(A)list->A->bool`);
883 ("CROSS", `:(A->bool)->(B->bool)->A#B->bool`);
884 ("HAS_SIZE", `:(A->bool)->num->bool`); ("CARD", `:(A->bool)->num`);
885 ("ITSET", `:(A->B->B)->(A->bool)->B->B`);
886 ("FINREC", `:(A->B->B)->B->(A->bool)->B->num->bool`);
887 ("REST", `:(A->bool)->A->bool`); ("CHOICE", `:(A->bool)->A`);
888 ("BIJ", `:(A->B)->(A->bool)->(B->bool)->bool`);
889 ("SURJ", `:(A->B)->(A->bool)->(B->bool)->bool`);
890 ("INJ", `:(A->B)->(A->bool)->(B->bool)->bool`);
891 ("IMAGE", `:(A->B)->(A->bool)->B->bool`);
892 ("INFINITE", `:(A->bool)->bool`); ("FINITE", `:(A->bool)->bool`);
893 ("SING", `:(A->bool)->bool`); ("DISJOINT", `:(A->bool)->(A->bool)->bool`);
894 ("PSUBSET", `:(A->bool)->(A->bool)->bool`);
895 ("SUBSET", `:(A->bool)->(A->bool)->bool`);
896 ("DELETE", `:(A->bool)->A->A->bool`);
897 ("DIFF", `:(A->bool)->(A->bool)->A->bool`);
898 ("INTERS", `:((A->bool)->bool)->A->bool`);
899 ("INTER", `:(A->bool)->(A->bool)->A->bool`);
900 ("UNIONS", `:((A->bool)->bool)->A->bool`);
901 ("UNION", `:(A->bool)->(A->bool)->A->bool`); ("UNIV", `:A->bool`);
902 ("INSERT", `:A->(A->bool)->A->bool`); ("EMPTY", `:A->bool`);
903 ("SETSPEC", `:A->bool->A->bool`); ("GSPEC", `:(A->bool)->A->bool`);
904 ("IN", `:A->(A->bool)->bool`); ("num_gcd", `:num#num->num`);
905 ("num_coprime", `:num#num->bool`); ("num_mod", `:num->num->num->bool`);
906 ("num_divides", `:num->num->bool`); ("num_of_int", `:int->num`);
907 ("int_gcd", `:int#int->int`); ("int_coprime", `:int#int->bool`);
908 ("int_mod", `:int->int->int->bool`); ("int_divides", `:int->int->bool`);
909 ("real_mod", `:real->real->real->bool`);
910 ("==", `:A->A->(A->A->bool)->bool`); ("rem", `:int->int->int`);
911 ("div", `:int->int->int`); ("int_pow", `:int->num->int`);
912 ("int_min", `:int->int->int`); ("int_max", `:int->int->int`);
913 ("int_abs", `:int->int`); ("int_mul", `:int->int->int`);
914 ("int_sub", `:int->int->int`); ("int_add", `:int->int->int`);
915 ("int_neg", `:int->int`); ("int_of_num", `:num->int`);
916 ("int_gt", `:int->int->bool`); ("int_ge", `:int->int->bool`);
917 ("int_lt", `:int->int->bool`); ("int_le", `:int->int->bool`);
918 ("real_of_int", `:int->real`); ("int_of_real", `:real->int`);
919 ("is_int", `:real->bool`); ("DECIMAL", `:num->num->real`);
920 ("real_min", `:real->real->real`); ("real_max", `:real->real->real`);
921 ("real_div", `:real->real->real`); ("real_pow", `:real->num->real`);
922 ("real_abs", `:real->real`); ("real_gt", `:real->real->bool`);
923 ("real_ge", `:real->real->bool`); ("real_lt", `:real->real->bool`);
924 ("real_sub", `:real->real->real`); ("real_inv", `:real->real`);
925 ("real_le", `:real->real->bool`); ("real_mul", `:real->real->real`);
926 ("real_add", `:real->real->real`); ("real_neg", `:real->real`);
927 ("real_of_num", `:num->real`); ("dest_real", `:real->hreal#hreal->bool`);
928 ("mk_real", `:(hreal#hreal->bool)->real`);
929 ("treal_eq", `:hreal#hreal->hreal#hreal->bool`);
930 ("treal_inv", `:hreal#hreal->hreal#hreal`);
931 ("treal_le", `:hreal#hreal->hreal#hreal->bool`);
932 ("treal_mul", `:hreal#hreal->hreal#hreal->hreal#hreal`);
933 ("treal_add", `:hreal#hreal->hreal#hreal->hreal#hreal`);
934 ("treal_neg", `:hreal#hreal->hreal#hreal`);
935 ("treal_of_num", `:num->hreal#hreal`); ("hreal_inv", `:hreal->hreal`);
936 ("hreal_le", `:hreal->hreal->bool`);
937 ("hreal_mul", `:hreal->hreal->hreal`);
938 ("hreal_add", `:hreal->hreal->hreal`); ("hreal_of_num", `:num->hreal`);
939 ("dest_hreal", `:hreal->nadd->bool`);
940 ("mk_hreal", `:(nadd->bool)->hreal`); ("nadd_inv", `:nadd->nadd`);
941 ("nadd_rinv", `:nadd->num->num`); ("nadd_mul", `:nadd->nadd->nadd`);
942 ("nadd_add", `:nadd->nadd->nadd`); ("nadd_le", `:nadd->nadd->bool`);
943 ("nadd_of_num", `:num->nadd`); ("nadd_eq", `:nadd->nadd->bool`);
944 ("dest_nadd", `:nadd->num->num`); ("mk_nadd", `:(num->num)->nadd`);
945 ("is_nadd", `:(num->num)->bool`); ("dist", `:num#num->num`);
946 ("ASCII", `:bool->bool->bool->bool->bool->bool->bool->bool->char`);
947 ("_16756", `:bool->bool->bool->bool->bool->bool->bool->bool->char`);
948 ("_dest_char", `:char->(bool#bool#bool#bool#bool#bool#bool#bool)recspace`);
949 ("_mk_char", `:(bool#bool#bool#bool#bool#bool#bool#bool)recspace->char`);
950 ("ZIP", `:(A)list->(B)list->(A#B)list`);
951 ("ITLIST2", `:(A->B->C->C)->(A)list->(B)list->C->C`);
952 ("ASSOC", `:A->(A#B)list->B`); ("FILTER", `:(A->bool)->(A)list->(A)list`);
953 ("EL", `:num->(A)list->A`);
954 ("MAP2", `:(A->B->C)->(A)list->(B)list->(C)list`);
955 ("ALL2", `:(A->B->bool)->(A)list->(B)list->bool`);
956 ("MEM", `:A->(A)list->bool`); ("ITLIST", `:(A->B->B)->(A)list->B->B`);
957 ("EX", `:(A->bool)->(A)list->bool`); ("ALL", `:(A->bool)->(A)list->bool`);
958 ("NULL", `:(A)list->bool`); ("REPLICATE", `:num->A->(A)list`);
959 ("LAST", `:(A)list->A`); ("MAP", `:(A->B)->(A)list->(B)list`);
960 ("LENGTH", `:(A)list->num`); ("REVERSE", `:(A)list->(A)list`);
961 ("APPEND", `:(A)list->(A)list->(A)list`); ("TL", `:(A)list->(A)list`);
962 ("HD", `:(A)list->A`); ("ISO", `:(A->B)->(B->A)->bool`);
963 ("CONS", `:A->(A)list->(A)list`); ("NIL", `:(A)list`);
964 ("_dest_list", `:(A)list->(A)recspace`);
965 ("_mk_list", `:(A)recspace->(A)list`); ("SOME", `:A->(A)option`);
966 ("NONE", `:(A)option`); ("_dest_option", `:(A)option->(A)recspace`);
967 ("_mk_option", `:(A)recspace->(A)option`); ("OUTR", `:A+B->B`);
968 ("OUTL", `:A+B->A`); ("INR", `:B->A+B`); ("INL", `:A->A+B`);
969 ("_dest_sum", `:A+B->(A#B)recspace`); ("_mk_sum", `:(A#B)recspace->A+B`);
970 ("FNIL", `:num->A`); ("FCONS", `:A->(num->A)->num->A`);
971 ("CONSTR", `:num->A->(num->(A)recspace)->(A)recspace`);
972 ("BOTTOM", `:(A)recspace`); ("_dest_rec", `:(A)recspace->num->A->bool`);
973 ("_mk_rec", `:(num->A->bool)->(A)recspace`);
974 ("ZRECSPACE", `:(num->A->bool)->bool`); ("ZBOT", `:num->A->bool`);
975 ("ZCONSTR", `:num->A->(num->num->A->bool)->num->A->bool`);
976 ("INJP", `:(num->A->bool)->(num->A->bool)->num->A->bool`);
977 ("INJF", `:(num->num->A->bool)->num->A->bool`);
978 ("INJA", `:A->num->A->bool`); ("INJN", `:num->num->A->bool`);
979 ("NUMRIGHT", `:num->num`); ("NUMLEFT", `:num->bool`);
980 ("NUMSUM", `:bool->num->num`); ("NUMSND", `:num->num`);
981 ("NUMFST", `:num->num`); ("NUMPAIR", `:num->num->num`);
982 ("MEASURE", `:(A->num)->A->A->bool`); ("WF", `:(A->A->bool)->bool`);
983 ("minimal", `:(num->bool)->num`); ("MIN", `:num->num->num`);
984 ("MAX", `:num->num->num`); ("MOD", `:num->num->num`);
985 ("DIV", `:num->num->num`); ("FACT", `:num->num`); ("-", `:num->num->num`);
986 ("ODD", `:num->bool`); ("EVEN", `:num->bool`); (">", `:num->num->bool`);
987 (">=", `:num->num->bool`); ("<", `:num->num->bool`);
988 ("<=", `:num->num->bool`); ("EXP", `:num->num->num`);
989 ("*", `:num->num->num`); ("BIT1", `:num->num`); ("BIT0", `:num->num`);
990 ("+", `:num->num->num`); ("PRE", `:num->num`); ("NUMERAL", `:num->num`);
991 ("SUC", `:num->num`); ("_0", `:num`); ("dest_num", `:num->ind`);
992 ("mk_num", `:ind->num`); ("NUM_REP", `:ind->bool`); ("IND_0", `:ind`);
993 ("IND_SUC", `:ind->ind`); ("ONTO", `:(A->B)->bool`);
994 ("ONE_ONE", `:(A->B)->bool`); ("PASSOC", `:((A#B)#C->D)->A#B#C->D`);
995 ("UNCURRY", `:(A->B->C)->A#B->C`); ("CURRY", `:(A#B->C)->A->B->C`);
996 ("SND", `:A#B->B`); ("FST", `:A#B->A`); (",", `:A->B->A#B`);
997 ("REP_prod", `:A#B->A->B->bool`); ("ABS_prod", `:(A->B->bool)->A#B`);
998 ("mk_pair", `:A->B->A->B->bool`); ("_FUNCTION", `:(A->B->bool)->A->B`);
999 ("_MATCH", `:A->(A->B->bool)->B`);
1000 ("_GUARDED_PATTERN", `:bool->bool->bool->bool`);
1001 ("_UNGUARDED_PATTERN", `:bool->bool->bool`);
1002 ("_SEQPATTERN", `:(A->B->bool)->(A->B->bool)->A->B->bool`);
1003 ("GEQ", `:A->A->bool`); ("GABS", `:(A->bool)->A`); ("LET_END", `:A->A`);
1004 ("LET", `:(A->B)->A->B`); ("one", `:1`); ("one_REP", `:1->bool`);
1005 ("one_ABS", `:bool->1`); ("I", `:A->A`); ("o", `:(B->C)->(A->B)->A->C`);
1006 ("COND", `:bool->A->A->A`); ("@", `:(A->bool)->A`);
1007 ("_FALSITY_", `:bool`); ("?!", `:(A->bool)->bool`); ("~", `:bool->bool`);
1008 ("F", `:bool`); ("\\/", `:bool->bool->bool`); ("?", `:(A->bool)->bool`);
1009 ("!", `:(A->bool)->bool`); ("==>", `:bool->bool->bool`);
1010 ("/\\", `:bool->bool->bool`); ("T", `:bool`); ("=", `:A->A->bool`)];;
1012 let the_loaded_files = ["flyspeck.ml"; "wlog_examples.ml"; "wlog.ml"; "real.ml"; "measure.ml";
1013 "card.ml"; "wo.ml"; "geom.ml"; "transc.ml"; "canal.ml"; "complex.ml";
1014 "integration.ml"; "analysis.ml"; "dimension.ml"; "convex.ml";
1015 "topology.ml"; "iter.ml"; "floor.ml"; "cross.ml"; "determinants.ml";
1016 "products.ml"; "permutations.ml"; "vectors.ml"; "misc.ml"; "database.ml";
1017 "help.ml"; "define.ml"; "cart.ml"; "iter.ml"; "sets.ml"; "int.ml";
1018 "calc_rat.ml"; "real.ml"; "realarith.ml"; "calc_int.ml"; "realax.ml";
1019 "list.ml"; "ind-types.ml"; "grobner.ml"; "normalizer.ml"; "calc_num.ml";
1020 "wf.ml"; "arith.ml"; "num.ml"; "pair.ml"; "recursion.ml"; "quot.ml";
1021 "meson.ml"; "canon.ml"; "trivia.ml"; "class.ml"; "ind-defs.ml";
1022 "theorems.ml"; "simp.ml"; "itab.ml"; "tactics.ml"; "drule.ml"; "bool.ml";
1023 "equal.ml"; "printer.ml"; "parser.ml"; "preterm.ml"; "nets.ml";
1024 "basics.ml"; "fusion.ml"; "lib.ml"; "sys.ml"];;
1026 let the_overload_skeletons = [("real_interval", `:A`); ("segment", `:A`); ("interval", `:A`);
1027 ("**", `:A->B->C`); ("norm", `:A->real`); ("gcd", `:A#A->A`);
1028 ("coprime", `:A#A->bool`); ("mod", `:A->A->A->bool`);
1029 ("divides", `:A->A->bool`); ("&", `:num->A`); ("min", `:A->A->A`);
1030 ("max", `:A->A->A`); ("abs", `:A->A`); ("inv", `:A->A`);
1031 ("pow", `:A->num->A`); ("--", `:A->A`); (">=", `:A->A->bool`);
1032 (">", `:A->A->bool`); ("<=", `:A->A->bool`); ("<", `:A->A->bool`);
1033 ("/", `:A->A->A`); ("*", `:A->A->A`); ("-", `:A->A->A`);
1034 ("+", `:A->A->A`)];;
1036 let the_interface = [("vol", ("measure", `:(real^3->bool)->real`));
1037 ("NULLSET", ("negligible", `:(real^3->bool)->bool`));
1038 ("+", ("vector_add", `:real^N->real^N->real^N`));
1039 ("-", ("vector_sub", `:real^N->real^N->real^N`));
1040 ("--", ("vector_neg", `:real^N->real^N`));
1041 ("norm", ("vector_norm", `:real^N->real`));
1042 ("**", ("vector_matrix_mul", `:real^M->real^N^M->real^N`));
1044 ("closed_real_interval", `:(real#real)list->real->bool`));
1045 ("real_interval", ("open_real_interval", `:real#real->real->bool`));
1046 ("+", ("real_add", `:real->real->real`));
1047 ("-", ("real_sub", `:real->real->real`));
1048 ("*", ("real_mul", `:real->real->real`));
1049 ("/", ("real_div", `:real->real->real`));
1050 ("<", ("real_lt", `:real->real->bool`));
1051 ("<=", ("real_le", `:real->real->bool`));
1052 (">", ("real_gt", `:real->real->bool`));
1053 (">=", ("real_ge", `:real->real->bool`));
1054 ("--", ("real_neg", `:real->real`));
1055 ("pow", ("real_pow", `:real->num->real`));
1056 ("inv", ("real_inv", `:real->real`));
1057 ("abs", ("real_abs", `:real->real`));
1058 ("max", ("real_max", `:real->real->real`));
1059 ("min", ("real_min", `:real->real->real`));
1060 ("&", ("real_of_num", `:num->real`));
1061 ("mod", ("real_mod", `:real->real->real->bool`));
1062 ("inv", ("complex_inv", `:real^2->real^2`));
1063 ("pow", ("complex_pow", `:real^2->num->real^2`));
1064 ("/", ("complex_div", `:real^2->real^2->real^2`));
1065 ("*", ("complex_mul", `:real^2->real^2->real^2`));
1066 ("-", ("vector_sub", `:real^2->real^2->real^2`));
1067 ("+", ("vector_add", `:real^2->real^2->real^2`));
1068 ("--", ("vector_neg", `:real^2->real^2`));
1069 ("segment", ("closed_segment", `:(real^A#real^A)list->real^A->bool`));
1070 ("segment", ("open_segment", `:real^A#real^A->real^A->bool`));
1071 ("interval", ("closed_interval", `:(real^A#real^A)list->real^A->bool`));
1072 ("interval", ("open_interval", `:real^A#real^A->real^A->bool`));
1073 ("**", ("matrix_vector_mul", `:real^N^M->real^N->real^M`));
1074 ("**", ("matrix_mul", `:real^N^M->real^P^N->real^P^M`));
1075 ("-", ("matrix_sub", `:real^N^M->real^N^M->real^N^M`));
1076 ("+", ("matrix_add", `:real^N^M->real^N^M->real^N^M`));
1077 ("--", ("matrix_neg", `:real^N^M->real^N^M`));
1078 ("dist", ("distance", `:real^N#real^N->real`));
1079 ("+", ("+", `:num->num->num`)); ("-", ("-", `:num->num->num`));
1080 ("*", ("*", `:num->num->num`)); ("<", ("<", `:num->num->bool`));
1081 ("<=", ("<=", `:num->num->bool`)); (">", (">", `:num->num->bool`));
1082 (">=", (">=", `:num->num->bool`));
1083 ("divides", ("num_divides", `:num->num->bool`));
1084 ("mod", ("num_mod", `:num->num->num->bool`));
1085 ("coprime", ("num_coprime", `:num#num->bool`));
1086 ("gcd", ("num_gcd", `:num#num->num`));
1087 ("gcd", ("int_gcd", `:int#int->int`));
1088 ("coprime", ("int_coprime", `:int#int->bool`));
1089 ("mod", ("int_mod", `:int->int->int->bool`));
1090 ("divides", ("int_divides", `:int->int->bool`));
1091 ("&", ("int_of_num", `:num->int`));
1092 ("min", ("int_min", `:int->int->int`));
1093 ("max", ("int_max", `:int->int->int`)); ("abs", ("int_abs", `:int->int`));
1094 ("pow", ("int_pow", `:int->num->int`)); ("--", ("int_neg", `:int->int`));
1095 (">=", ("int_ge", `:int->int->bool`));
1096 (">", ("int_gt", `:int->int->bool`));
1097 ("<=", ("int_le", `:int->int->bool`));
1098 ("<", ("int_lt", `:int->int->bool`));
1099 ("*", ("int_mul", `:int->int->int`));
1100 ("-", ("int_sub", `:int->int->int`));
1101 ("+", ("int_add", `:int->int->int`));
1102 ("&", ("hreal_of_num", `:num->hreal`));
1103 ("<=>", ("=", `:bool->bool->bool`))];;
1105 let the_types = [("net", 1); ("topology", 1); ("3", 0); ("2", 0); ("finite_sum", 2);
1106 ("cart", 2); ("finite_image", 1); ("int", 0); ("real", 0); ("hreal", 0);
1107 ("nadd", 0); ("char", 0); ("list", 1); ("option", 1); ("sum", 2);
1108 ("recspace", 1); ("num", 0); ("ind", 0); ("prod", 2); ("1", 0);
1109 ("bool", 0); ("fun", 2)];;
1113 module Snapshot_flyspeck_init_2010_02_11 : Snapshot_type = struct
1115 let the_constants = Snapshot_v220_7_31_2009.the_constants;;
1116 let the_loaded_files = Snapshot_v220_7_31_2009.the_loaded_files;;
1117 let the_types = Snapshot_v220_7_31_2009.the_types;;
1118 let the_overload_skeletons = Snapshot_v220_7_31_2009.the_overload_skeletons;;
1122 (* start with the hol-light snapshot v220_7_31_2009 then *)
1123 prioritize_complex();; (* lowest priority *)
1126 prioritize_vector();;
1127 prioritize_real();; (* highest priority *)
1132 [("+", ("real_add", `:real->real->real`));
1133 ("-", ("real_sub", `:real->real->real`));
1134 ("*", ("real_mul", `:real->real->real`));
1135 ("/", ("real_div", `:real->real->real`));
1136 ("<", ("real_lt", `:real->real->bool`));
1137 ("<=", ("real_le", `:real->real->bool`));
1138 (">", ("real_gt", `:real->real->bool`));
1139 (">=", ("real_ge", `:real->real->bool`));
1140 ("--", ("real_neg", `:real->real`));
1141 ("pow", ("real_pow", `:real->num->real`));
1142 ("inv", ("real_inv", `:real->real`));
1143 ("abs", ("real_abs", `:real->real`));
1144 ("max", ("real_max", `:real->real->real`));
1145 ("min", ("real_min", `:real->real->real`));
1146 ("&", ("real_of_num", `:num->real`));
1147 ("mod", ("real_mod", `:real->real->real->bool`));
1148 ("+", ("vector_add", `:real^N->real^N->real^N`));
1149 ("-", ("vector_sub", `:real^N->real^N->real^N`));
1150 ("--", ("vector_neg", `:real^N->real^N`));
1151 ("norm", ("vector_norm", `:real^N->real`));
1152 ("**", ("vector_matrix_mul", `:real^M->real^N^M->real^N`));
1153 ("+", ("+", `:num->num->num`)); ("-", ("-", `:num->num->num`));
1154 ("*", ("*", `:num->num->num`)); ("<", ("<", `:num->num->bool`));
1155 ("<=", ("<=", `:num->num->bool`)); (">", (">", `:num->num->bool`));
1156 (">=", (">=", `:num->num->bool`));
1157 ("divides", ("num_divides", `:num->num->bool`));
1158 ("mod", ("num_mod", `:num->num->num->bool`));
1159 ("coprime", ("num_coprime", `:num#num->bool`));
1160 ("gcd", ("num_gcd", `:num#num->num`));
1161 ("+", ("int_add", `:int->int->int`));
1162 ("-", ("int_sub", `:int->int->int`));
1163 ("*", ("int_mul", `:int->int->int`));
1164 ("<", ("int_lt", `:int->int->bool`));
1165 ("<=", ("int_le", `:int->int->bool`));
1166 (">", ("int_gt", `:int->int->bool`));
1167 (">=", ("int_ge", `:int->int->bool`)); ("--", ("int_neg", `:int->int`));
1168 ("pow", ("int_pow", `:int->num->int`)); ("abs", ("int_abs", `:int->int`));
1169 ("max", ("int_max", `:int->int->int`));
1170 ("min", ("int_min", `:int->int->int`));
1171 ("&", ("int_of_num", `:num->int`));
1172 ("divides", ("int_divides", `:int->int->bool`));
1173 ("mod", ("int_mod", `:int->int->int->bool`));
1174 ("coprime", ("int_coprime", `:int#int->bool`));
1175 ("gcd", ("int_gcd", `:int#int->int`));
1176 ("inv", ("complex_inv", `:real^2->real^2`));
1177 ("pow", ("complex_pow", `:real^2->num->real^2`));
1178 ("/", ("complex_div", `:real^2->real^2->real^2`));
1179 ("*", ("complex_mul", `:real^2->real^2->real^2`));
1180 ("-", ("vector_sub", `:real^2->real^2->real^2`));
1181 ("+", ("vector_add", `:real^2->real^2->real^2`));
1182 ("--", ("vector_neg", `:real^2->real^2`));
1183 ("vol", ("measure", `:(real^3->bool)->real`));
1184 ("NULLSET", ("negligible", `:(real^3->bool)->bool`));
1186 ("closed_real_interval", `:(real#real)list->real->bool`));
1187 ("real_interval", ("open_real_interval", `:real#real->real->bool`));
1188 ("segment", ("closed_segment", `:(real^A#real^A)list->real^A->bool`));
1189 ("segment", ("open_segment", `:real^A#real^A->real^A->bool`));
1190 ("interval", ("closed_interval", `:(real^A#real^A)list->real^A->bool`));
1191 ("interval", ("open_interval", `:real^A#real^A->real^A->bool`));
1192 ("**", ("matrix_vector_mul", `:real^N^M->real^N->real^M`));
1193 ("**", ("matrix_mul", `:real^N^M->real^P^N->real^P^M`));
1194 ("-", ("matrix_sub", `:real^N^M->real^N^M->real^N^M`));
1195 ("+", ("matrix_add", `:real^N^M->real^N^M->real^N^M`));
1196 ("--", ("matrix_neg", `:real^N^M->real^N^M`));
1197 ("dist", ("distance", `:real^N#real^N->real`));
1198 ("&", ("hreal_of_num", `:num->hreal`));
1199 ("<=>", ("=", `:bool->bool->bool`))];;