src/HOL/Nitpick_Examples/Integer_Nits.thy
changeset 37477 e482320bcbfe
parent 35695 80b2c22f8f00
child 38185 b51677438b3a
equal deleted inserted replaced
37476:0681e46b4022 37477:e482320bcbfe
   185 nitpick [binary_ints, expect = genuine]
   185 nitpick [binary_ints, expect = genuine]
   186 oops
   186 oops
   187 
   187 
   188 lemma "y \<noteq> 0 \<Longrightarrow> x * y div y = (x::int)"
   188 lemma "y \<noteq> 0 \<Longrightarrow> x * y div y = (x::int)"
   189 nitpick [unary_ints, expect = none]
   189 nitpick [unary_ints, expect = none]
   190 nitpick [binary_ints, expect = none, card = 1\<midarrow>5, bits = 1\<midarrow>5]
   190 nitpick [binary_ints, card = 1\<midarrow>4, bits = 1\<midarrow>4, expect = none]
   191 sorry
   191 sorry
   192 
   192 
   193 lemma "(x * y < 0) \<longleftrightarrow> (x > 0 \<and> y < 0) \<or> (x < 0 \<and> y > (0::int))"
   193 lemma "(x * y < 0) \<longleftrightarrow> (x > 0 \<and> y < 0) \<or> (x < 0 \<and> y > (0::int))"
   194 nitpick [unary_ints, expect = none]
   194 nitpick [unary_ints, expect = none]
   195 nitpick [binary_ints, expect = none]
   195 nitpick [binary_ints, expect = none]
   211 primrec labels where
   211 primrec labels where
   212 "labels Null = {}" |
   212 "labels Null = {}" |
   213 "labels (Node x t u) = {x} \<union> labels t \<union> labels u"
   213 "labels (Node x t u) = {x} \<union> labels t \<union> labels u"
   214 
   214 
   215 lemma "labels (Node x t u) \<noteq> labels (Node y v w)"
   215 lemma "labels (Node x t u) \<noteq> labels (Node y v w)"
   216 nitpick [expect = genuine]
   216 nitpick [expect = potential] (* unfortunate *)
   217 nitpick [dont_finitize, expect = potential]
   217 nitpick [dont_finitize, expect = potential]
   218 oops
   218 oops
   219 
   219 
   220 lemma "labels (Node x t u) \<noteq> {}"
   220 lemma "labels (Node x t u) \<noteq> {}"
   221 nitpick [expect = none]
   221 nitpick [expect = none]
   222 oops
   222 oops
   223 
   223 
   224 lemma "card (labels t) > 0"
   224 lemma "card (labels t) > 0"
   225 nitpick [expect = genuine]
   225 nitpick [expect = potential] (* unfortunate *)
   226 nitpick [dont_finitize, expect = potential]
   226 nitpick [dont_finitize, expect = potential]
   227 oops
   227 oops
   228 
   228 
   229 lemma "(\<Sum>n \<in> labels t. n + 2) \<ge> 2"
   229 lemma "(\<Sum>n \<in> labels t. n + 2) \<ge> 2"
   230 nitpick [expect = genuine]
   230 nitpick [expect = potential] (* unfortunate *)
   231 nitpick [dont_finitize, expect = potential]
   231 nitpick [dont_finitize, expect = potential]
   232 oops
   232 oops
   233 
   233 
   234 lemma "t \<noteq> Null \<Longrightarrow> (\<Sum>n \<in> labels t. n + 2) \<ge> 2"
   234 lemma "t \<noteq> Null \<Longrightarrow> (\<Sum>n \<in> labels t. n + 2) \<ge> 2"
   235 nitpick [expect = none]
   235 nitpick [expect = none]
   236 nitpick [dont_finitize, expect = none]
   236 nitpick [dont_finitize, expect = none]
   237 sorry
   237 sorry
   238 
   238 
   239 lemma "(\<Sum>i \<in> labels (Node x t u). f i\<Colon>nat) = f x + (\<Sum>i \<in> labels t. f i) + (\<Sum>i \<in> labels u. f i)"
   239 lemma "(\<Sum>i \<in> labels (Node x t u). f i\<Colon>nat) = f x + (\<Sum>i \<in> labels t. f i) + (\<Sum>i \<in> labels u. f i)"
   240 nitpick [expect = genuine]
   240 nitpick [expect = none] (* unfortunate *)
   241 nitpick [dont_finitize, expect = none]
   241 nitpick [dont_finitize, expect = none]
   242 oops
   242 oops
   243 
   243 
   244 end
   244 end