# HG changeset patch # User wenzelm # Date 1464788025 -7200 # Node ID 3251e9dfea91ba873c76bf63c9bd75c9a359791b # Parent 22bd3341b9641589649b1060d4954c44772688fc clarified string_of_rat operations; diff -r 22bd3341b964 -r 3251e9dfea91 src/HOL/Library/Sum_of_Squares/positivstellensatz_tools.ML --- a/src/HOL/Library/Sum_of_Squares/positivstellensatz_tools.ML Wed Jun 01 15:19:44 2016 +0200 +++ b/src/HOL/Library/Sum_of_Squares/positivstellensatz_tools.ML Wed Jun 01 15:33:45 2016 +0200 @@ -18,15 +18,6 @@ local -fun string_of_rat r = - let - val (nom, den) = Rat.dest r - in - if den = 1 then string_of_int nom - else string_of_int nom ^ "/" ^ string_of_int den - end - - (* map polynomials to strings *) fun string_of_varpow x k = @@ -49,9 +40,9 @@ in foldr1 (fn (s, t) => s ^ "*" ^ t) vps end fun string_of_cmonomial (m,c) = - if FuncUtil.Ctermfunc.is_empty m then string_of_rat c + if FuncUtil.Ctermfunc.is_empty m then Rat.string_of_rat c else if c = @1 then string_of_monomial m - else string_of_rat c ^ "*" ^ string_of_monomial m + else Rat.string_of_rat c ^ "*" ^ string_of_monomial m fun string_of_poly p = if FuncUtil.Monomialfunc.is_empty p then "0" @@ -67,9 +58,9 @@ fun pss_to_cert (RealArith.Axiom_eq i) = "A=" ^ string_of_int i | pss_to_cert (RealArith.Axiom_le i) = "A<=" ^ string_of_int i | pss_to_cert (RealArith.Axiom_lt i) = "A<" ^ string_of_int i - | pss_to_cert (RealArith.Rational_eq r) = "R=" ^ string_of_rat r - | pss_to_cert (RealArith.Rational_le r) = "R<=" ^ string_of_rat r - | pss_to_cert (RealArith.Rational_lt r) = "R<" ^ string_of_rat r + | pss_to_cert (RealArith.Rational_eq r) = "R=" ^ Rat.string_of_rat r + | pss_to_cert (RealArith.Rational_le r) = "R<=" ^ Rat.string_of_rat r + | pss_to_cert (RealArith.Rational_lt r) = "R<" ^ Rat.string_of_rat r | pss_to_cert (RealArith.Square p) = "[" ^ string_of_poly p ^ "]^2" | pss_to_cert (RealArith.Eqmul (p, pss)) = "([" ^ string_of_poly p ^ "] * " ^ pss_to_cert pss ^ ")" diff -r 22bd3341b964 -r 3251e9dfea91 src/Pure/General/rat.ML --- a/src/Pure/General/rat.ML Wed Jun 01 15:19:44 2016 +0200 +++ b/src/Pure/General/rat.ML Wed Jun 01 15:33:45 2016 +0200 @@ -13,6 +13,7 @@ val make: int * int -> rat val dest: rat -> int * int val string_of_rat: rat -> string + val signed_string_of_rat: rat -> string val eq: rat * rat -> bool val ord: rat * rat -> order val le: rat -> rat -> bool @@ -48,8 +49,11 @@ fun of_int i = Rat (i, 1); -fun string_of_rat (Rat (p, q)) = - string_of_int p ^ "/" ^ string_of_int q; +fun string_of_rat (Rat (p, 1)) = string_of_int p + | string_of_rat (Rat (p, q)) = string_of_int p ^ "/" ^ string_of_int q; + +fun signed_string_of_rat (Rat (p, 1)) = signed_string_of_int p + | signed_string_of_rat (Rat (p, q)) = signed_string_of_int p ^ "/" ^ string_of_int q; fun eq (Rat (p1, q1), Rat (p2, q2)) = (p1 = p2 andalso q1 = q2);