src/HOL/Library/Sum_of_Squares/sum_of_squares.ML
changeset 56536 aefb4a8da31f
parent 55508 90c42b130652
child 56625 54505623a8ef
equal deleted inserted replaced
56535:34023a586608 56536:aefb4a8da31f
  1045       in rtac th i THEN Simplifier.asm_full_simp_tac simp_ctxt i end));
  1045       in rtac th i THEN Simplifier.asm_full_simp_tac simp_ctxt i end));
  1046 
  1046 
  1047 fun elim_denom_tac ctxt i = REPEAT (elim_one_denom_tac ctxt i);
  1047 fun elim_denom_tac ctxt i = REPEAT (elim_one_denom_tac ctxt i);
  1048 
  1048 
  1049 fun sos_tac print_cert prover ctxt =
  1049 fun sos_tac print_cert prover ctxt =
  1050   Object_Logic.full_atomize_tac ctxt THEN'
  1050   (* The SOS prover breaks if mult_nonneg_nonneg is in the simpset *)
  1051   elim_denom_tac ctxt THEN'
  1051   let val ctxt' = ctxt delsimps [@{thm mult_nonneg_nonneg}]
  1052   core_sos_tac print_cert prover ctxt;
  1052   in Object_Logic.full_atomize_tac ctxt' THEN'
       
  1053      elim_denom_tac ctxt' THEN'
       
  1054      core_sos_tac print_cert prover ctxt'
       
  1055   end;
  1053 
  1056 
  1054 end;
  1057 end;