try logical and theory abstraction before full abstraction (avoids warnings of linarith)
authorboehmes
Wed, 26 May 2010 17:52:32 +0200
changeset 37125fed6bbf35bac
parent 37124 66b0ae11a358
child 37126 a4bf276a20b3
try logical and theory abstraction before full abstraction (avoids warnings of linarith)
src/HOL/Tools/SMT/z3_proof_reconstruction.ML
     1.1 --- a/src/HOL/Tools/SMT/z3_proof_reconstruction.ML	Wed May 26 15:35:17 2010 +0200
     1.2 +++ b/src/HOL/Tools/SMT/z3_proof_reconstruction.ML	Wed May 26 17:52:32 2010 +0200
     1.3 @@ -689,11 +689,19 @@
     1.4  
     1.5  fun rewrite ctxt simpset ths = Thm o with_conv ctxt ths (try_apply ctxt [] [
     1.6    named ctxt "conj/disj/distinct" prove_conj_disj_eq,
     1.7 +  T.by_abstraction (true, false) ctxt [] (fn ctxt' => T.by_tac (
     1.8 +    NAMED ctxt' "simp (logic)" (Simplifier.simp_tac simpset)
     1.9 +    THEN_ALL_NEW NAMED ctxt' "fast (logic)" (Classical.fast_tac HOL_cs))),
    1.10 +  T.by_abstraction (false, true) ctxt [] (fn ctxt' => T.by_tac (
    1.11 +    NAMED ctxt' "simp (theory)" (Simplifier.simp_tac simpset)
    1.12 +    THEN_ALL_NEW (
    1.13 +      NAMED ctxt' "fast (theory)" (Classical.fast_tac HOL_cs)
    1.14 +      ORELSE' NAMED ctxt' "arith (theory)" (Arith_Data.arith_tac ctxt')))),
    1.15    T.by_abstraction (true, true) ctxt [] (fn ctxt' => T.by_tac (
    1.16 -    NAMED ctxt' "simp" (Simplifier.simp_tac simpset)
    1.17 +    NAMED ctxt' "simp (full)" (Simplifier.simp_tac simpset)
    1.18      THEN_ALL_NEW (
    1.19 -      NAMED ctxt' "fast" (Classical.fast_tac HOL_cs)
    1.20 -      ORELSE' NAMED ctxt' "arith" (Arith_Data.arith_tac ctxt'))))])
    1.21 +      NAMED ctxt' "fast (full)" (Classical.fast_tac HOL_cs)
    1.22 +      ORELSE' NAMED ctxt' "arith (full)" (Arith_Data.arith_tac ctxt'))))])
    1.23  
    1.24  end
    1.25