src/HOL/Nitpick_Examples/Integer_Nits.thy
author bulwahn
Sat, 21 Jul 2012 10:55:42 +0200
changeset 48415 b42067a3188f
parent 48046 359bec38a4ee
child 48812 9509fc5485b2
permissions -rw-r--r--
restricting Quickcheck_Examples' root file to one basic theory to see if the system error on isatest still occurs
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     1
(*  Title:      HOL/Nitpick_Examples/Integer_Nits.thy
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     2
    Author:     Jasmin Blanchette, TU Muenchen
45035
60d2c03d5c70 reintroduced Minipick as Nitpick example
blanchet
parents: 42959
diff changeset
     3
    Copyright   2009-2011
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     4
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     5
Examples featuring Nitpick applied to natural numbers and integers.
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     6
*)
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     7
46090
f1796596ef60 tuned import
blanchet
parents: 45035
diff changeset
     8
header {* Examples Featuring Nitpick Applied to Natural Numbers and Integers *}
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
     9
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    10
theory Integer_Nits
46090
f1796596ef60 tuned import
blanchet
parents: 45035
diff changeset
    11
imports Main
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    12
begin
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    13
42959
ee829022381d use \<emdash> rather than \<midarrow>
blanchet
parents: 42208
diff changeset
    14
nitpick_params [verbose, card = 1\<emdash>5, bits = 1,2,3,4,6,
42208
02513eb26eb7 raised timeouts further, for SML/NJ -- because of variations in machines/compilers, fixed timeouts can merely prevent non-termination, not enforce particular performance characteristics.
krauss
parents: 41278
diff changeset
    15
                sat_solver = MiniSat_JNI, max_threads = 1, timeout = 240]
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    16
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    17
lemma "Suc x = x + 1"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    18
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    19
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    20
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    21
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    22
lemma "x < Suc x"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    23
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    24
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    25
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    26
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    27
lemma "x + y \<ge> (x::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    28
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    29
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    30
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    31
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    32
lemma "y \<noteq> 0 \<Longrightarrow> x + y > (x::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    33
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    34
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    35
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    36
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    37
lemma "x + y = y + (x::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    38
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    39
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    40
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    41
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    42
lemma "x > y \<Longrightarrow> x - y \<noteq> (0::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    43
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    44
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    45
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    46
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    47
lemma "x \<le> y \<Longrightarrow> x - y = (0::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    48
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    49
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    50
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    51
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    52
lemma "x - (0::nat) = x"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    53
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    54
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    55
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    56
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    57
lemma "\<lbrakk>x \<noteq> 0; y \<noteq> 0\<rbrakk> \<Longrightarrow> x * y \<noteq> (0::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    58
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    59
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    60
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    61
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    62
lemma "0 * y = (0::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    63
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    64
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    65
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    66
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    67
lemma "y * 0 = (0::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    68
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    69
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    70
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    71
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    72
lemma "\<lbrakk>x \<noteq> 0; y \<noteq> 0\<rbrakk> \<Longrightarrow> x * y \<ge> (x::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    73
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    74
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    75
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    76
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    77
lemma "\<lbrakk>x \<noteq> 0; y \<noteq> 0\<rbrakk> \<Longrightarrow> x * y \<ge> (y::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    78
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    79
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    80
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    81
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    82
lemma "x * y div y = (x::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    83
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    84
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    85
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    86
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    87
lemma "y \<noteq> 0 \<Longrightarrow> x * y div y = (x::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    88
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    89
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    90
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    91
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    92
lemma "5 * 55 < (260::nat)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    93
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    94
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    95
nitpick [binary_ints, bits = 9, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    96
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
    97
48046
359bec38a4ee temporarily comment out nitpick examples broken by changes to Int.thy
huffman
parents: 47109
diff changeset
    98
(* FIXME
359bec38a4ee temporarily comment out nitpick examples broken by changes to Int.thy
huffman
parents: 47109
diff changeset
    99
*** Invalid intermediate term ("Nitpick_Nut.the_name"): (ConstName Nitpick.sel0$Nitpick.Quot int \<Rightarrow> nat X).
359bec38a4ee temporarily comment out nitpick examples broken by changes to Int.thy
huffman
parents: 47109
diff changeset
   100
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   101
lemma "nat (of_nat n) = n"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   102
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   103
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   104
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   105
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   106
lemma "x + y \<ge> (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   107
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   108
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   109
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   110
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   111
lemma "\<lbrakk>x \<ge> 0; y \<ge> 0\<rbrakk> \<Longrightarrow> x + y \<ge> (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   112
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   113
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   114
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   115
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   116
lemma "y \<ge> 0 \<Longrightarrow> x + y \<ge> (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   117
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   118
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   119
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   120
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   121
lemma "x \<ge> 0 \<Longrightarrow> x + y \<ge> (y::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   122
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   123
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   124
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   125
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   126
lemma "x \<ge> 0 \<Longrightarrow> x + y \<ge> (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   127
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   128
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   129
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   130
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   131
lemma "\<lbrakk>x \<le> 0; y \<le> 0\<rbrakk> \<Longrightarrow> x + y \<le> (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   132
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   133
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   134
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   135
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   136
lemma "y \<noteq> 0 \<Longrightarrow> x + y > (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   137
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   138
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   139
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   140
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   141
lemma "x + y = y + (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   142
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   143
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   144
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   145
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   146
lemma "x > y \<Longrightarrow> x - y \<noteq> (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   147
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   148
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   149
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   150
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   151
lemma "x \<le> y \<Longrightarrow> x - y = (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   152
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   153
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   154
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   155
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   156
lemma "x - (0::int) = x"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   157
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   158
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   159
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   160
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   161
lemma "\<lbrakk>x \<noteq> 0; y \<noteq> 0\<rbrakk> \<Longrightarrow> x * y \<noteq> (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   162
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   163
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   164
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   165
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   166
lemma "0 * y = (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   167
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   168
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   169
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   170
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   171
lemma "y * 0 = (0::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   172
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   173
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   174
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   175
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   176
lemma "\<lbrakk>x \<noteq> 0; y \<noteq> 0\<rbrakk> \<Longrightarrow> x * y \<ge> (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   177
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   178
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   179
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   180
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   181
lemma "\<lbrakk>x \<noteq> 0; y \<noteq> 0\<rbrakk> \<Longrightarrow> x * y \<ge> (y::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   182
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   183
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   184
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   185
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   186
lemma "x * y div y = (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   187
nitpick [unary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   188
nitpick [binary_ints, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   189
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   190
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   191
lemma "y \<noteq> 0 \<Longrightarrow> x * y div y = (x::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   192
nitpick [unary_ints, expect = none]
42959
ee829022381d use \<emdash> rather than \<midarrow>
blanchet
parents: 42208
diff changeset
   193
nitpick [binary_ints, card = 1\<emdash>4, bits = 1\<emdash>4, expect = none]
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   194
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   195
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   196
lemma "(x * y < 0) \<longleftrightarrow> (x > 0 \<and> y < 0) \<or> (x < 0 \<and> y > (0::int))"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   197
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   198
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   199
sorry
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   200
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   201
lemma "-5 * 55 > (-260::int)"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   202
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   203
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   204
nitpick [binary_ints, bits = 9, expect = genuine]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   205
oops
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   206
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   207
lemma "nat (of_nat n) = n"
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   208
nitpick [unary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   209
nitpick [binary_ints, expect = none]
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   210
sorry
48046
359bec38a4ee temporarily comment out nitpick examples broken by changes to Int.thy
huffman
parents: 47109
diff changeset
   211
*)
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   212
35695
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   213
datatype tree = Null | Node nat tree tree
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   214
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   215
primrec labels where
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   216
"labels Null = {}" |
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   217
"labels (Node x t u) = {x} \<union> labels t \<union> labels u"
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   218
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   219
lemma "labels (Node x t u) \<noteq> labels (Node y v w)"
37477
e482320bcbfe adjusted Nitpick examples to latest changes + make them slightly faster
blanchet
parents: 35695
diff changeset
   220
nitpick [expect = potential] (* unfortunate *)
35695
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   221
nitpick [dont_finitize, expect = potential]
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   222
oops
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   223
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   224
lemma "labels (Node x t u) \<noteq> {}"
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   225
nitpick [expect = none]
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   226
oops
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   227
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   228
lemma "card (labels t) > 0"
37477
e482320bcbfe adjusted Nitpick examples to latest changes + make them slightly faster
blanchet
parents: 35695
diff changeset
   229
nitpick [expect = potential] (* unfortunate *)
35695
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   230
nitpick [dont_finitize, expect = potential]
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   231
oops
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   232
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   233
lemma "(\<Sum>n \<in> labels t. n + 2) \<ge> 2"
37477
e482320bcbfe adjusted Nitpick examples to latest changes + make them slightly faster
blanchet
parents: 35695
diff changeset
   234
nitpick [expect = potential] (* unfortunate *)
35695
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   235
nitpick [dont_finitize, expect = potential]
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   236
oops
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   237
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   238
lemma "t \<noteq> Null \<Longrightarrow> (\<Sum>n \<in> labels t. n + 2) \<ge> 2"
39362
ee65900bfced adapt examples to latest Nitpick changes + speed them up a little bit
blanchet
parents: 38185
diff changeset
   239
nitpick [expect = potential] (* unfortunate *)
ee65900bfced adapt examples to latest Nitpick changes + speed them up a little bit
blanchet
parents: 38185
diff changeset
   240
nitpick [dont_finitize, expect = potential]
35695
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   241
sorry
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   242
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   243
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)"
39362
ee65900bfced adapt examples to latest Nitpick changes + speed them up a little bit
blanchet
parents: 38185
diff changeset
   244
nitpick [expect = potential] (* unfortunate *)
ee65900bfced adapt examples to latest Nitpick changes + speed them up a little bit
blanchet
parents: 38185
diff changeset
   245
nitpick [dont_finitize, expect = potential]
35695
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   246
oops
80b2c22f8f00 fixed soundness bug in Nitpick
blanchet
parents: 35078
diff changeset
   247
34126
8a2c5d7aff51 polished Nitpick's binary integer support etc.;
blanchet
parents:
diff changeset
   248
end