src/HOL/ex/Reflected_Presburger.thy
changeset 23515 3e7f62e68fe4
parent 23477 f4b83f03cac9
child 23689 0410269099dc
     1.1 --- a/src/HOL/ex/Reflected_Presburger.thy	Thu Jun 28 19:09:36 2007 +0200
     1.2 +++ b/src/HOL/ex/Reflected_Presburger.thy	Thu Jun 28 19:09:38 2007 +0200
     1.3 @@ -1,5 +1,5 @@
     1.4  theory Reflected_Presburger
     1.5 -imports GCD Main EfficientNat
     1.6 +imports GCD EfficientNat
     1.7  uses ("coopereif.ML") ("coopertac.ML")
     1.8  begin
     1.9  
    1.10 @@ -1902,18 +1902,21 @@
    1.11  
    1.12  theorem mirqe: "(Ifm bbs bs (pa p) = Ifm bbs bs p) \<and> qfree (pa p)"
    1.13    using qelim_ci cooper prep by (auto simp add: pa_def)
    1.14 -declare zdvd_iff_zmod_eq_0 [code]
    1.15  
    1.16 -code_module GeneratedCooper
    1.17 -file "generated_cooper.ML"
    1.18 -contains pa = "pa"
    1.19 -test = "%x . pa (E(A(Imp (Ge (Sub (Bound 0) (Bound 1))) (E(E(Eq(Sub(Add(Mul 3 (Bound 1)) (Mul 5 (Bound 0))) (Bound 2))))))))"
    1.20 +definition
    1.21 +  cooper_test :: "unit \<Rightarrow> fm"
    1.22 +where
    1.23 +  "cooper_test u = pa (E (A (Imp (Ge (Sub (Bound 0) (Bound 1)))
    1.24 +    (E (E (Eq (Sub (Add (Mul 3 (Bound 1)) (Mul 5 (Bound 0)))
    1.25 +      (Bound 2))))))))"
    1.26  
    1.27 -ML{* use "generated_cooper.ML"; 
    1.28 -     GeneratedCooper.test (); *}
    1.29 +code_gen pa cooper_test in SML
    1.30 +
    1.31 +ML {* structure GeneratedCooper = struct open ROOT end *}
    1.32 +ML {* GeneratedCooper.Reflected_Presburger.cooper_test () *}
    1.33  use "coopereif.ML"
    1.34  oracle linzqe_oracle ("term") = Coopereif.cooper_oracle
    1.35 -use"coopertac.ML"
    1.36 +use "coopertac.ML"
    1.37  setup "LinZTac.setup"
    1.38  
    1.39    (* Tests *)