equal
deleted
inserted
replaced
20 val setup: Context.generic -> Context.generic |
20 val setup: Context.generic -> Context.generic |
21 val global_setup: theory -> theory |
21 val global_setup: theory -> theory |
22 val split_limit: int Config.T |
22 val split_limit: int Config.T |
23 val neq_limit: int Config.T |
23 val neq_limit: int Config.T |
24 val verbose: bool Config.T |
24 val verbose: bool Config.T |
25 val trace: bool Unsynchronized.ref |
25 val trace: bool Config.T |
26 end; |
26 end; |
27 |
27 |
28 structure Lin_Arith: LIN_ARITH = |
28 structure Lin_Arith: LIN_ARITH = |
29 struct |
29 struct |
30 |
30 |
100 {splits = splits, inj_consts = update (op =) c inj_consts, |
100 {splits = splits, inj_consts = update (op =) c inj_consts, |
101 discrete = discrete}); |
101 discrete = discrete}); |
102 |
102 |
103 val split_limit = Attrib.setup_config_int @{binding linarith_split_limit} (K 9); |
103 val split_limit = Attrib.setup_config_int @{binding linarith_split_limit} (K 9); |
104 val neq_limit = Attrib.setup_config_int @{binding linarith_neq_limit} (K 9); |
104 val neq_limit = Attrib.setup_config_int @{binding linarith_neq_limit} (K 9); |
105 val verbose = Attrib.setup_config_bool @{binding linarith_verbose} (K true); |
105 val verbose = Attrib.setup_config_bool @{binding linarith_verbose} (K true); |
|
106 val trace = Attrib.setup_config_bool @{binding linarith_trace} (K false); |
106 |
107 |
107 |
108 |
108 structure LA_Data = |
109 structure LA_Data = |
109 struct |
110 struct |
110 |
111 |
111 val fast_arith_neq_limit = neq_limit; |
112 val neq_limit = neq_limit; |
112 val fast_arith_verbose = verbose; |
113 val verbose = verbose; |
|
114 val trace = trace; |
113 |
115 |
114 |
116 |
115 (* Decomposition of terms *) |
117 (* Decomposition of terms *) |
116 |
118 |
117 (*internal representation of linear (in-)equations*) |
119 (*internal representation of linear (in-)equations*) |
777 val add_simprocs = Fast_Arith.add_simprocs; |
779 val add_simprocs = Fast_Arith.add_simprocs; |
778 val set_number_of = Fast_Arith.set_number_of; |
780 val set_number_of = Fast_Arith.set_number_of; |
779 |
781 |
780 fun simple_tac ctxt = Fast_Arith.lin_arith_tac ctxt false; |
782 fun simple_tac ctxt = Fast_Arith.lin_arith_tac ctxt false; |
781 val lin_arith_tac = Fast_Arith.lin_arith_tac; |
783 val lin_arith_tac = Fast_Arith.lin_arith_tac; |
782 val trace = Fast_Arith.trace; |
|
783 |
784 |
784 (* reduce contradictory <= to False. |
785 (* reduce contradictory <= to False. |
785 Most of the work is done by the cancel tactics. *) |
786 Most of the work is done by the cancel tactics. *) |
786 |
787 |
787 val init_arith_data = |
788 val init_arith_data = |