# HG changeset patch # User blanchet # Date 1272613005 -7200 # Node ID 3a29eb7606c3a0ed34c598bbcd4634b5393cf6d0 # Parent d495d2e1f0a671b2cd912fe91439cf2daa73a0fa added "no_atp" for theorems that are automatically used or included by Sledgehammer when appropriate (about combinators and fequal) diff -r d495d2e1f0a6 -r 3a29eb7606c3 src/HOL/Sledgehammer.thy --- a/src/HOL/Sledgehammer.thy Thu Apr 29 19:08:02 2010 +0200 +++ b/src/HOL/Sledgehammer.thy Fri Apr 30 09:36:45 2010 +0200 @@ -25,28 +25,28 @@ ("Tools/Sledgehammer/metis_tactics.ML") begin -definition COMBI :: "'a \ 'a" - where "COMBI P \ P" +definition COMBI :: "'a \ 'a" where +[no_atp]: "COMBI P \ P" -definition COMBK :: "'a \ 'b \ 'a" - where "COMBK P Q \ P" +definition COMBK :: "'a \ 'b \ 'a" where +[no_atp]: "COMBK P Q \ P" -definition COMBB :: "('b => 'c) \ ('a => 'b) \ 'a \ 'c" - where "COMBB P Q R \ P (Q R)" +definition COMBB :: "('b => 'c) \ ('a => 'b) \ 'a \ 'c" where [no_atp]: +"COMBB P Q R \ P (Q R)" -definition COMBC :: "('a \ 'b \ 'c) \ 'b \ 'a \ 'c" - where "COMBC P Q R \ P R Q" +definition COMBC :: "('a \ 'b \ 'c) \ 'b \ 'a \ 'c" where +[no_atp]: "COMBC P Q R \ P R Q" -definition COMBS :: "('a \ 'b \ 'c) \ ('a \ 'b) \ 'a \ 'c" - where "COMBS P Q R \ P R (Q R)" +definition COMBS :: "('a \ 'b \ 'c) \ ('a \ 'b) \ 'a \ 'c" where +[no_atp]: "COMBS P Q R \ P R (Q R)" -definition fequal :: "'a \ 'a \ bool" - where "fequal X Y \ (X = Y)" +definition fequal :: "'a \ 'a \ bool" where [no_atp]: +"fequal X Y \ (X = Y)" -lemma fequal_imp_equal: "fequal X Y \ X = Y" +lemma fequal_imp_equal [no_atp]: "fequal X Y \ X = Y" by (simp add: fequal_def) -lemma equal_imp_fequal: "X = Y \ fequal X Y" +lemma equal_imp_fequal [no_atp]: "X = Y \ fequal X Y" by (simp add: fequal_def) text{*These two represent the equivalence between Boolean equality and iff. @@ -61,31 +61,31 @@ text{*Theorems for translation to combinators*} -lemma abs_S: "\x. (f x) (g x) \ COMBS f g" +lemma abs_S [no_atp]: "\x. (f x) (g x) \ COMBS f g" apply (rule eq_reflection) apply (rule ext) apply (simp add: COMBS_def) done -lemma abs_I: "\x. x \ COMBI" +lemma abs_I [no_atp]: "\x. x \ COMBI" apply (rule eq_reflection) apply (rule ext) apply (simp add: COMBI_def) done -lemma abs_K: "\x. y \ COMBK y" +lemma abs_K [no_atp]: "\x. y \ COMBK y" apply (rule eq_reflection) apply (rule ext) apply (simp add: COMBK_def) done -lemma abs_B: "\x. a (g x) \ COMBB a g" +lemma abs_B [no_atp]: "\x. a (g x) \ COMBB a g" apply (rule eq_reflection) apply (rule ext) apply (simp add: COMBB_def) done -lemma abs_C: "\x. (f x) b \ COMBC f b" +lemma abs_C [no_atp]: "\x. (f x) b \ COMBC f b" apply (rule eq_reflection) apply (rule ext) apply (simp add: COMBC_def)