# HG changeset patch # User wenzelm # Date 1635458474 -7200 # Node ID 08b186726ea0ab4060a0e5038ce5eb013b2a60e2 # Parent 997a605b37a9a00644f1861f5bbd200e3771f6fa tuned; diff -r 997a605b37a9 -r 08b186726ea0 src/HOL/Library/Sum_of_Squares/positivstellensatz.ML --- a/src/HOL/Library/Sum_of_Squares/positivstellensatz.ML Thu Oct 28 23:44:31 2021 +0200 +++ b/src/HOL/Library/Sum_of_Squares/positivstellensatz.ML Fri Oct 29 00:01:14 2021 +0200 @@ -258,17 +258,19 @@ "((a + b + min x y + c > r) = (a + b + x + c > r \ a + b + y + c > r))" by auto}; -val abs_split' = @{lemma "P \x::'a::linordered_idom\ == (x \ 0 \ P x \ x < 0 \ P (-x))" - by (atomize (full)) (auto split: abs_split)}; - -val max_split = @{lemma "P (max x y) \ ((x::'a::linorder) \ y \ P y \ x > y \ P x)" - by (atomize (full)) (cases "x \ y", auto simp add: max_def)}; +val pth_abs = + @{lemma "P \x\ \ (x \ 0 \ P x \ x < 0 \ P (-x))" for x :: real + by (atomize (full)) (auto split: abs_split)} -val min_split = @{lemma "P (min x y) \ ((x::'a::linorder) \ y \ P x \ x > y \ P y)" - by (atomize (full)) (cases "x \ y", auto simp add: min_def)}; +val pth_max = + @{lemma "P (max x y) \ (x \ y \ P y \ x > y \ P x)" for x y :: real + by (atomize (full)) (auto simp add: max_def)} +val pth_min = + @{lemma "P (min x y) \ (x \ y \ P x \ x > y \ P y)" for x y :: real + by (atomize (full)) (auto simp add: min_def)} - (* Miscellaneous *) +(* Miscellaneous *) fun literals_conv bops uops cv = let fun h t = @@ -722,9 +724,6 @@ val absmaxmin_elim_conv2 = let - val pth_abs = Thm.instantiate' [SOME \<^ctyp>\real\] [] abs_split' - val pth_max = Thm.instantiate' [SOME \<^ctyp>\real\] [] max_split - val pth_min = Thm.instantiate' [SOME \<^ctyp>\real\] [] min_split val p_v = (("P", 0), \<^typ>\real \ bool\) val x_v = (("x", 0), \<^typ>\real\) val y_v = (("y", 0), \<^typ>\real\)