# HG changeset patch # User Cezary Kaliszyk # Date 1311171333 -7200 # Node ID aa04d1e1e2cc2999894b63e5442c4c283ea88849 # Parent 2108763f298ddee1cdadd577cfc09f3f6deb381c# Parent 6cc1875cf35da11b0d8c31e9eea33712475e723e merge diff -r 2108763f298d -r aa04d1e1e2cc src/HOL/Library/Extended_Real.thy --- a/src/HOL/Library/Extended_Real.thy Wed Jul 20 16:14:49 2011 +0200 +++ b/src/HOL/Library/Extended_Real.thy Wed Jul 20 16:15:33 2011 +0200 @@ -75,6 +75,15 @@ and MInfty_cases[simp]: "(case - \ of ereal r \ f r | PInfty \ y | MInfty \ z) = z" by (simp_all add: infinity_ereal_def) +declare + PInfty_eq_infinity[code_post] + MInfty_eq_minfinity[code_post] + +lemma [code_unfold]: + "\ = PInfty" + "-PInfty = MInfty" + by simp_all + lemma inj_ereal[simp]: "inj_on ereal A" unfolding inj_on_def by auto @@ -2540,4 +2549,14 @@ "[| (a::ereal) <= x; c <= x |] ==> max a c <= x" by (metis sup_ereal_def sup_least) +subsubsection {* Tests for code generator *} + +(* A small list of simple arithmetic expressions *) + +value [code] "- \ :: ereal" +value [code] "\-\\ :: ereal" +value [code] "4 + 5 / 4 - ereal 2 :: ereal" +value [code] "ereal 3 < \" +value [code] "real (\::ereal) = 0" + end diff -r 2108763f298d -r aa04d1e1e2cc src/HOL/Tools/SMT/smt_translate.ML --- a/src/HOL/Tools/SMT/smt_translate.ML Wed Jul 20 16:14:49 2011 +0200 +++ b/src/HOL/Tools/SMT/smt_translate.ML Wed Jul 20 16:15:33 2011 +0200 @@ -554,11 +554,9 @@ ts2 |> eta_expand ctxt1 is_fol funcs |> rpair ctxt1 - |>> tap (map (tracing o PolyML.makestring)) |-> Lambda_Lifting.lift_lambdas NONE is_binder |-> (fn (ts', defs) => fn ctxt' => map mk_trigger defs @ ts' - |> tap (map (tracing o PolyML.makestring)) |> intro_explicit_application ctxt' funcs |> pair ctxt')