src/HOL/Library/positivstellensatz.ML
changeset 32740 9dd0a2f83429
parent 32646 962b4354ed90
child 32828 ad76967c703d
equal deleted inserted replaced
32739:31e75ad9ae17 32740:9dd0a2f83429
   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)