2 ||M|| This file is part of HELM, an Hypertextual, Electronic
3 ||A|| Library of Mathematics, developed at the Computer Science
4 ||T|| Department, University of Bologna, Italy.
6 ||T|| HELM is free software; you can redistribute it and/or
7 ||A|| modify it under the terms of the GNU General Public License
8 \ / version 2 or (at your option) any later version.
9 \ / This software is distributed as is, NO WARRANTY.
10 V_______________________________________________________________ *)
14 module R = Helm_registry
17 (* internal *****************************************************************)
19 let default_no_init = true
21 let default_out_dir = F.current_dir_name
23 let default_proc_id = "H"
25 let default_check = false
27 let default_no_types = false
29 let default_no_proofs = false
31 let default_global_alpha = false
33 let default_log_alpha = false
35 let default_log_missing = false
37 let default_list_och = None
39 let default_alpha = []
41 let default_macro = []
45 (* interface ****************************************************************)
47 let dno_id = "_" (* identifier for not-occurring premises *)
49 let nan = -1 (* not a number *)
51 let status = new P.status
53 let no_init = ref default_no_init
55 let out_dir = ref default_out_dir (* directory of generated files *)
57 let proc_id = ref default_proc_id (* identifer for anticipations *)
59 let check = ref default_check (* check transformations *)
61 let no_types = ref default_no_types (* omit types *)
63 let no_proofs = ref default_no_proofs (* omit proofs *)
65 let global_alpha = ref default_global_alpha (* log alpha-unconverted identifiers *)
67 let log_alpha = ref default_log_alpha (* log alpha-unconverted identifiers *)
69 let log_missing = ref default_log_missing (* log missing notational macros *)
71 let list_och = ref default_list_och (* output stream for list file *)
73 let alpha_type = ref default_alpha (* data for type-based alpha-conversion *)
75 let alpha_sort = ref default_alpha (* data for sort-based alpha-conversion *)
77 let alpha_gref = ref default_alpha (* data for constant renaming *)
79 let macro_gref = ref default_macro (* data for eta-conversion and constant rendering *)
81 let sigs_gref = ref default_sigs (* data for sigma-type rendering *)
84 !global_alpha && s <> dno_id
86 let close_list () = match !list_och with
88 | Some och -> close_out och
91 R.clear (); close_list ();
92 no_init := default_no_init;
93 out_dir := default_out_dir;
94 proc_id := default_proc_id;
95 check := default_check;
96 no_types := default_no_types;
97 no_proofs := default_no_proofs;
98 global_alpha := default_global_alpha;
99 log_alpha := default_log_alpha;
100 log_missing := default_log_missing;
101 list_och := default_list_och;
102 alpha_type := default_alpha;
103 alpha_sort := default_alpha;
104 alpha_gref := default_alpha;
105 macro_gref := default_macro;
106 sigs_gref := default_sigs