src/HOL/ex/Refute_Examples.thy
changeset 58310 91ea607a34d8
parent 58305 57752a91eec4
child 58889 5b7a9633cfa8
equal deleted inserted replaced
58309:a09ec6daaa19 58310:91ea607a34d8
   603 refute [expect = genuine]
   603 refute [expect = genuine]
   604 oops
   604 oops
   605 
   605 
   606 text {* Non-recursive datatypes *}
   606 text {* Non-recursive datatypes *}
   607 
   607 
   608 datatype_new T1 = A | B
   608 datatype T1 = A | B
   609 
   609 
   610 lemma "P (x::T1)"
   610 lemma "P (x::T1)"
   611 refute [expect = genuine]
   611 refute [expect = genuine]
   612 oops
   612 oops
   613 
   613 
   637 
   637 
   638 lemma "P (case x of A \<Rightarrow> a | B \<Rightarrow> b)"
   638 lemma "P (case x of A \<Rightarrow> a | B \<Rightarrow> b)"
   639 refute [expect = genuine]
   639 refute [expect = genuine]
   640 oops
   640 oops
   641 
   641 
   642 datatype_new 'a T2 = C T1 | D 'a
   642 datatype 'a T2 = C T1 | D 'a
   643 
   643 
   644 lemma "P (x::'a T2)"
   644 lemma "P (x::'a T2)"
   645 refute [expect = genuine]
   645 refute [expect = genuine]
   646 oops
   646 oops
   647 
   647 
   667 
   667 
   668 lemma "P (case x of C u \<Rightarrow> c u | D v \<Rightarrow> d v)"
   668 lemma "P (case x of C u \<Rightarrow> c u | D v \<Rightarrow> d v)"
   669 refute [expect = genuine]
   669 refute [expect = genuine]
   670 oops
   670 oops
   671 
   671 
   672 datatype_new ('a,'b) T3 = E "'a \<Rightarrow> 'b"
   672 datatype ('a,'b) T3 = E "'a \<Rightarrow> 'b"
   673 
   673 
   674 lemma "P (x::('a,'b) T3)"
   674 lemma "P (x::('a,'b) T3)"
   675 refute [expect = genuine]
   675 refute [expect = genuine]
   676 oops
   676 oops
   677 
   677 
   770 
   770 
   771 lemma "a # xs = b # xs"
   771 lemma "a # xs = b # xs"
   772 refute [expect = potential]
   772 refute [expect = potential]
   773 oops
   773 oops
   774 
   774 
   775 datatype_new BitList = BitListNil | Bit0 BitList | Bit1 BitList
   775 datatype BitList = BitListNil | Bit0 BitList | Bit1 BitList
   776 
   776 
   777 lemma "P (x::BitList)"
   777 lemma "P (x::BitList)"
   778 refute [expect = potential]
   778 refute [expect = potential]
   779 oops
   779 oops
   780 
   780