equal
deleted
inserted
replaced
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 |