doc-src/TutorialI/Types/Numbers.thy
author nipkow
Tue, 26 Jun 2007 08:42:04 +0200
changeset 23501 e5874335a655
parent 23498 4db8aa43076c
child 23504 2b2323124e8e
permissions -rw-r--r--
removed removed lemmas
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     1
(* ID:         $Id$ *)
16417
9bc16273c2d4 migrated theory headers to new format
haftmann
parents: 15740
diff changeset
     2
theory Numbers imports Real begin
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     3
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     4
ML "Pretty.setmargin 64"
22097
7ee0529c5674 renamed IsarOutput to ThyOutput;
wenzelm
parents: 16585
diff changeset
     5
ML "ThyOutput.indent := 0"  (*we don't want 5 for listing theorems*)
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     6
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     7
text{*
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     8
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
     9
numeric literals; default simprules; can re-orient
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    10
*}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    11
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
    12
lemma "2 * m = m + m"
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    13
txt{*
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    14
@{subgoals[display,indent=0,margin=65]}
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    15
*};
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    16
oops
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    17
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    18
consts h :: "nat \<Rightarrow> nat"
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    19
recdef h "{}"
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
    20
"h i = (if i = 3 then 2 else i)"
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    21
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    22
text{*
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
    23
@{term"h 3 = 2"}
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    24
@{term"h i  = i"}
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    25
*}
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    26
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    27
text{*
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    28
@{thm[display] numeral_0_eq_0[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    29
\rulename{numeral_0_eq_0}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    30
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    31
@{thm[display] numeral_1_eq_1[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    32
\rulename{numeral_1_eq_1}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    33
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    34
@{thm[display] add_2_eq_Suc[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    35
\rulename{add_2_eq_Suc}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    36
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    37
@{thm[display] add_2_eq_Suc'[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    38
\rulename{add_2_eq_Suc'}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    39
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    40
@{thm[display] add_assoc[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    41
\rulename{add_assoc}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    42
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    43
@{thm[display] add_commute[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    44
\rulename{add_commute}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    45
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    46
@{thm[display] add_left_commute[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    47
\rulename{add_left_commute}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    48
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    49
these form add_ac; similarly there is mult_ac
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    50
*}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    51
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    52
lemma "Suc(i + j*l*k + m*n) = f (n*m + i + k*j*l)"
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    53
txt{*
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    54
@{subgoals[display,indent=0,margin=65]}
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    55
*};
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    56
apply (simp add: add_ac mult_ac)
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    57
txt{*
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    58
@{subgoals[display,indent=0,margin=65]}
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
    59
*};
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    60
oops
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    61
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    62
text{*
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    63
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    64
@{thm[display] div_le_mono[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    65
\rulename{div_le_mono}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    66
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    67
@{thm[display] diff_mult_distrib[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    68
\rulename{diff_mult_distrib}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    69
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    70
@{thm[display] mod_mult_distrib[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    71
\rulename{mod_mult_distrib}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    72
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    73
@{thm[display] nat_diff_split[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    74
\rulename{nat_diff_split}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    75
*}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    76
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    77
12156
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    78
lemma "(n - 1) * (n + 1) = n * n - (1::nat)"
12843
50bd380e6675 iff del: less_Suc0 -- luckily this does NOT affect the printed text;
wenzelm
parents: 12156
diff changeset
    79
apply (clarsimp split: nat_diff_split iff del: less_Suc0)
12156
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    80
 --{* @{subgoals[display,indent=0,margin=65]} *}
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    81
apply (subgoal_tac "n=0", force, arith)
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    82
done
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    83
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    84
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
    85
lemma "(n - 2) * (n + 2) = n * n - (4::nat)"
12156
d2758965362e new-style numerals without leading #, along with generic 0 and 1
paulson
parents: 11711
diff changeset
    86
apply (simp split: nat_diff_split, clarify)
11480
0fba0357c04c Getting it working again with 1' instead of 1
paulson
parents: 11174
diff changeset
    87
 --{* @{subgoals[display,indent=0,margin=65]} *}
0fba0357c04c Getting it working again with 1' instead of 1
paulson
parents: 11174
diff changeset
    88
apply (subgoal_tac "n=0 | n=1", force, arith)
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    89
done
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    90
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    91
text{*
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    92
@{thm[display] mod_if[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    93
\rulename{mod_if}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    94
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    95
@{thm[display] mod_div_equality[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    96
\rulename{mod_div_equality}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    97
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    98
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
    99
@{thm[display] div_mult1_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   100
\rulename{div_mult1_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   101
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   102
@{thm[display] mod_mult1_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   103
\rulename{mod_mult1_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   104
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   105
@{thm[display] div_mult2_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   106
\rulename{div_mult2_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   107
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   108
@{thm[display] mod_mult2_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   109
\rulename{mod_mult2_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   110
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   111
@{thm[display] div_mult_mult1[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   112
\rulename{div_mult_mult1}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   113
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   114
@{thm[display] DIVISION_BY_ZERO_DIV[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   115
\rulename{DIVISION_BY_ZERO_DIV}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   116
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   117
@{thm[display] DIVISION_BY_ZERO_MOD[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   118
\rulename{DIVISION_BY_ZERO_MOD}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   119
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   120
@{thm[display] dvd_anti_sym[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   121
\rulename{dvd_anti_sym}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   122
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   123
@{thm[display] dvd_add[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   124
\rulename{dvd_add}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   125
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   126
For the integers, I'd list a few theorems that somehow involve negative 
13757
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   127
numbers.*}
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   128
13757
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   129
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   130
text{*
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   131
Division, remainder of negatives
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   132
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   133
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   134
@{thm[display] pos_mod_sign[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   135
\rulename{pos_mod_sign}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   136
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   137
@{thm[display] pos_mod_bound[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   138
\rulename{pos_mod_bound}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   139
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   140
@{thm[display] neg_mod_sign[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   141
\rulename{neg_mod_sign}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   142
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   143
@{thm[display] neg_mod_bound[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   144
\rulename{neg_mod_bound}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   145
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   146
@{thm[display] zdiv_zadd1_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   147
\rulename{zdiv_zadd1_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   148
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   149
@{thm[display] zmod_zadd1_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   150
\rulename{zmod_zadd1_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   151
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   152
@{thm[display] zdiv_zmult1_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   153
\rulename{zdiv_zmult1_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   154
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   155
@{thm[display] zmod_zmult1_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   156
\rulename{zmod_zmult1_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   157
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   158
@{thm[display] zdiv_zmult2_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   159
\rulename{zdiv_zmult2_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   160
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   161
@{thm[display] zmod_zmult2_eq[no_vars]}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   162
\rulename{zmod_zmult2_eq}
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   163
*}  
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   164
11174
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   165
lemma "abs (x+y) \<le> abs x + abs (y :: int)"
10880
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
   166
by arith
729a36e469ec updated for new version of numerics.tex
paulson
parents: 10777
diff changeset
   167
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
   168
lemma "abs (2*x) = 2 * abs (x :: int)"
16585
02cf78f0afce replacing zabs_def by abs_if
paulson
parents: 16417
diff changeset
   169
by (simp add: abs_if) 
11174
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   170
13757
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   171
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   172
text {*Induction rules for the Integers
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   173
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   174
@{thm[display] int_ge_induct[no_vars]}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   175
\rulename{int_ge_induct}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   176
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   177
@{thm[display] int_gr_induct[no_vars]}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   178
\rulename{int_gr_induct}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   179
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   180
@{thm[display] int_le_induct[no_vars]}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   181
\rulename{int_le_induct}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   182
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   183
@{thm[display] int_less_induct[no_vars]}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   184
\rulename{int_less_induct}
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   185
*}  
33b84d172c97 new int induction rules
paulson
parents: 12843
diff changeset
   186
14400
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   187
text {*FIELDS
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   188
14295
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   189
@{thm[display] dense[no_vars]}
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   190
\rulename{dense}
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   191
14288
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   192
@{thm[display] times_divide_eq_right[no_vars]}
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   193
\rulename{times_divide_eq_right}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   194
14288
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   195
@{thm[display] times_divide_eq_left[no_vars]}
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   196
\rulename{times_divide_eq_left}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   197
14288
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   198
@{thm[display] divide_divide_eq_right[no_vars]}
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   199
\rulename{divide_divide_eq_right}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   200
14288
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   201
@{thm[display] divide_divide_eq_left[no_vars]}
d149e3cbdb39 Moving some theorems from Real/RealArith0.ML
paulson
parents: 13757
diff changeset
   202
\rulename{divide_divide_eq_left}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   203
14295
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   204
@{thm[display] minus_divide_left[no_vars]}
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   205
\rulename{minus_divide_left}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   206
14295
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   207
@{thm[display] minus_divide_right[no_vars]}
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   208
\rulename{minus_divide_right}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   209
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   210
This last NOT a simprule
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   211
14295
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   212
@{thm[display] add_divide_distrib[no_vars]}
7f115e5c5de4 more general lemmas for Ring_and_Field
paulson
parents: 14288
diff changeset
   213
\rulename{add_divide_distrib}
10764
329d5f4aa43c some HOL-Real material
paulson
parents: 10603
diff changeset
   214
*}
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   215
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
   216
lemma "3/4 < (7/8 :: real)"
11174
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   217
by simp 
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   218
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
   219
lemma "P ((3/4) * (8/15 :: real))"
11174
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   220
txt{*
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   221
@{subgoals[display,indent=0,margin=65]}
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   222
*};
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   223
apply simp 
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   224
txt{*
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   225
@{subgoals[display,indent=0,margin=65]}
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   226
*};
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   227
oops
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   228
11711
ecdfd237ffee fixed numerals;
wenzelm
parents: 11480
diff changeset
   229
lemma "(3/4) * (8/15) < (x :: real)"
11174
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   230
txt{*
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   231
@{subgoals[display,indent=0,margin=65]}
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   232
*};
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   233
apply simp 
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   234
txt{*
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   235
@{subgoals[display,indent=0,margin=65]}
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   236
*};
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   237
oops
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   238
14400
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   239
text{*
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   240
Ring and Field
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   241
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   242
Requires a field, or else an ordered ring
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   243
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   244
@{thm[display] mult_eq_0_iff[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   245
\rulename{mult_eq_0_iff}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   246
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   247
@{thm[display] mult_cancel_right[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   248
\rulename{mult_cancel_right}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   249
*}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   250
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   251
ML{*set show_sorts*}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   252
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   253
text{*
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   254
effect of show sorts on the above
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   255
*}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   256
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   257
ML{*reset show_sorts*}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   258
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   259
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   260
text{*
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   261
absolute value
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   262
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   263
@{thm[display] abs_mult[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   264
\rulename{abs_mult}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   265
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   266
@{thm[display] abs_le_iff[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   267
\rulename{abs_le_iff}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   268
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   269
@{thm[display] abs_triangle_ineq[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   270
\rulename{abs_triangle_ineq}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   271
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   272
@{thm[display] power_add[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   273
\rulename{power_add}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   274
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   275
@{thm[display] power_mult[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   276
\rulename{power_mult}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   277
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   278
@{thm[display] power_abs[no_vars]}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   279
\rulename{power_abs}
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   280
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   281
6069098854b9 new numerics section using type classes
paulson
parents: 14353
diff changeset
   282
*}
11174
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   283
96a533d300a6 revisions in response to comments by Tobias
paulson
parents: 10880
diff changeset
   284
10603
539735ddaea9 theory file for Numbers section
paulson
parents:
diff changeset
   285
end