188 type prover = tree_choice list -> |
188 type prover = tree_choice list -> |
189 (thm list * thm list * thm list -> positivstellensatz -> thm) -> |
189 (thm list * thm list * thm list -> positivstellensatz -> thm) -> |
190 thm list * thm list * thm list -> thm * pss_tree |
190 thm list * thm list * thm list -> thm * pss_tree |
191 type cert_conv = cterm -> thm * pss_tree |
191 type cert_conv = cterm -> thm * pss_tree |
192 |
192 |
193 val my_eqs = ref ([] : thm list); |
193 val my_eqs = Unsynchronized.ref ([] : thm list); |
194 val my_les = ref ([] : thm list); |
194 val my_les = Unsynchronized.ref ([] : thm list); |
195 val my_lts = ref ([] : thm list); |
195 val my_lts = Unsynchronized.ref ([] : thm list); |
196 val my_proof = ref (Axiom_eq 0); |
196 val my_proof = Unsynchronized.ref (Axiom_eq 0); |
197 val my_context = ref @{context}; |
197 val my_context = Unsynchronized.ref @{context}; |
198 |
198 |
199 val my_mk_numeric = ref ((K @{cterm True}) :Rat.rat -> cterm); |
199 val my_mk_numeric = Unsynchronized.ref ((K @{cterm True}) :Rat.rat -> cterm); |
200 val my_numeric_eq_conv = ref no_conv; |
200 val my_numeric_eq_conv = Unsynchronized.ref no_conv; |
201 val my_numeric_ge_conv = ref no_conv; |
201 val my_numeric_ge_conv = Unsynchronized.ref no_conv; |
202 val my_numeric_gt_conv = ref no_conv; |
202 val my_numeric_gt_conv = Unsynchronized.ref no_conv; |
203 val my_poly_conv = ref no_conv; |
203 val my_poly_conv = Unsynchronized.ref no_conv; |
204 val my_poly_neg_conv = ref no_conv; |
204 val my_poly_neg_conv = Unsynchronized.ref no_conv; |
205 val my_poly_add_conv = ref no_conv; |
205 val my_poly_add_conv = Unsynchronized.ref no_conv; |
206 val my_poly_mul_conv = ref no_conv; |
206 val my_poly_mul_conv = Unsynchronized.ref no_conv; |
207 |
207 |
208 |
208 |
209 (* Some useful derived rules *) |
209 (* Some useful derived rules *) |
210 fun deduct_antisym_rule tha thb = |
210 fun deduct_antisym_rule tha thb = |
211 equal_intr (implies_intr (cprop_of thb) tha) |
211 equal_intr (implies_intr (cprop_of thb) tha) |