src/HOL/Nitpick_Examples/Refute_Nits.thy
changeset 45694 4a8743618257
parent 45035 60d2c03d5c70
child 49834 b27bbb021df1
equal deleted inserted replaced
45693:bbd2c7ffc02c 45694:4a8743618257
   537 
   537 
   538 subsubsection {* Subtypes (typedef), typedecl *}
   538 subsubsection {* Subtypes (typedef), typedecl *}
   539 
   539 
   540 text {* A completely unspecified non-empty subset of @{typ "'a"}: *}
   540 text {* A completely unspecified non-empty subset of @{typ "'a"}: *}
   541 
   541 
   542 typedef 'a myTdef = "insert (undefined\<Colon>'a) (undefined\<Colon>'a set)"
   542 definition "myTdef = insert (undefined::'a) (undefined::'a set)"
   543 by auto
   543 
       
   544 typedef (open) 'a myTdef = "myTdef :: 'a set"
       
   545 unfolding myTdef_def by auto
   544 
   546 
   545 lemma "(x\<Colon>'a myTdef) = y"
   547 lemma "(x\<Colon>'a myTdef) = y"
   546 nitpick [expect = genuine]
   548 nitpick [expect = genuine]
   547 oops
   549 oops
   548 
   550 
   549 typedecl myTdecl
   551 typedecl myTdecl
   550 
   552 
   551 typedef 'a T_bij = "{(f\<Colon>'a\<Rightarrow>'a). \<forall>y. \<exists>!x. f x = y}"
   553 definition "T_bij = {(f::'a\<Rightarrow>'a). \<forall>y. \<exists>!x. f x = y}"
   552 by auto
   554 
       
   555 typedef (open) 'a T_bij = "T_bij :: ('a \<Rightarrow> 'a) set"
       
   556 unfolding T_bij_def by auto
   553 
   557 
   554 lemma "P (f\<Colon>(myTdecl myTdef) T_bij)"
   558 lemma "P (f\<Colon>(myTdecl myTdef) T_bij)"
   555 nitpick [expect = genuine]
   559 nitpick [expect = genuine]
   556 oops
   560 oops
   557 
   561