doc-src/TutorialI/Types/Numbers.thy
changeset 14400 6069098854b9
parent 14353 79f9fbef9106
child 15740 d63e7a65b2d0
equal deleted inserted replaced
14399:dc677b35e54f 14400:6069098854b9
    58 @{subgoals[display,indent=0,margin=65]}
    58 @{subgoals[display,indent=0,margin=65]}
    59 *};
    59 *};
    60 oops
    60 oops
    61 
    61 
    62 text{*
    62 text{*
    63 @{thm[display] mult_le_mono[no_vars]}
       
    64 \rulename{mult_le_mono}
       
    65 
       
    66 @{thm[display] mult_less_mono1[no_vars]}
       
    67 \rulename{mult_less_mono1}
       
    68 
    63 
    69 @{thm[display] div_le_mono[no_vars]}
    64 @{thm[display] div_le_mono[no_vars]}
    70 \rulename{div_le_mono}
    65 \rulename{div_le_mono}
    71 
       
    72 @{thm[display] add_mult_distrib[no_vars]}
       
    73 \rulename{add_mult_distrib}
       
    74 
    66 
    75 @{thm[display] diff_mult_distrib[no_vars]}
    67 @{thm[display] diff_mult_distrib[no_vars]}
    76 \rulename{diff_mult_distrib}
    68 \rulename{diff_mult_distrib}
    77 
    69 
    78 @{thm[display] mod_mult_distrib[no_vars]}
    70 @{thm[display] mod_mult_distrib[no_vars]}
   166 @{thm[display] zdiv_zmult2_eq[no_vars]}
   158 @{thm[display] zdiv_zmult2_eq[no_vars]}
   167 \rulename{zdiv_zmult2_eq}
   159 \rulename{zdiv_zmult2_eq}
   168 
   160 
   169 @{thm[display] zmod_zmult2_eq[no_vars]}
   161 @{thm[display] zmod_zmult2_eq[no_vars]}
   170 \rulename{zmod_zmult2_eq}
   162 \rulename{zmod_zmult2_eq}
   171 
       
   172 @{thm[display] abs_mult[no_vars]}
       
   173 \rulename{abs_mult}
       
   174 *}  
   163 *}  
   175 
   164 
   176 lemma "abs (x+y) \<le> abs x + abs (y :: int)"
   165 lemma "abs (x+y) \<le> abs x + abs (y :: int)"
   177 by arith
   166 by arith
   178 
   167 
   193 
   182 
   194 @{thm[display] int_less_induct[no_vars]}
   183 @{thm[display] int_less_induct[no_vars]}
   195 \rulename{int_less_induct}
   184 \rulename{int_less_induct}
   196 *}  
   185 *}  
   197 
   186 
   198 text {*REALS
   187 text {*FIELDS
   199 
   188 
   200 @{thm[display] dense[no_vars]}
   189 @{thm[display] dense[no_vars]}
   201 \rulename{dense}
   190 \rulename{dense}
   202 
   191 
       
   192 @{thm[display] times_divide_eq_right[no_vars]}
       
   193 \rulename{times_divide_eq_right}
       
   194 
       
   195 @{thm[display] times_divide_eq_left[no_vars]}
       
   196 \rulename{times_divide_eq_left}
       
   197 
       
   198 @{thm[display] divide_divide_eq_right[no_vars]}
       
   199 \rulename{divide_divide_eq_right}
       
   200 
       
   201 @{thm[display] divide_divide_eq_left[no_vars]}
       
   202 \rulename{divide_divide_eq_left}
       
   203 
       
   204 @{thm[display] minus_divide_left[no_vars]}
       
   205 \rulename{minus_divide_left}
       
   206 
       
   207 @{thm[display] minus_divide_right[no_vars]}
       
   208 \rulename{minus_divide_right}
       
   209 
       
   210 This last NOT a simprule
       
   211 
       
   212 @{thm[display] add_divide_distrib[no_vars]}
       
   213 \rulename{add_divide_distrib}
       
   214 *}
       
   215 
       
   216 lemma "3/4 < (7/8 :: real)"
       
   217 by simp 
       
   218 
       
   219 lemma "P ((3/4) * (8/15 :: real))"
       
   220 txt{*
       
   221 @{subgoals[display,indent=0,margin=65]}
       
   222 *};
       
   223 apply simp 
       
   224 txt{*
       
   225 @{subgoals[display,indent=0,margin=65]}
       
   226 *};
       
   227 oops
       
   228 
       
   229 lemma "(3/4) * (8/15) < (x :: real)"
       
   230 txt{*
       
   231 @{subgoals[display,indent=0,margin=65]}
       
   232 *};
       
   233 apply simp 
       
   234 txt{*
       
   235 @{subgoals[display,indent=0,margin=65]}
       
   236 *};
       
   237 oops
       
   238 
       
   239 lemma "(3/4) * (10^15) < (x :: real)"
       
   240 apply simp 
       
   241 oops
       
   242 
       
   243 text{*
       
   244 Ring and Field
       
   245 
       
   246 Requires a field, or else an ordered ring
       
   247 
       
   248 @{thm[display] mult_eq_0_iff[no_vars]}
       
   249 \rulename{mult_eq_0_iff}
       
   250 
       
   251 @{thm[display] field_mult_eq_0_iff[no_vars]}
       
   252 \rulename{field_mult_eq_0_iff}
       
   253 
       
   254 @{thm[display] mult_cancel_right[no_vars]}
       
   255 \rulename{mult_cancel_right}
       
   256 
       
   257 @{thm[display] field_mult_cancel_right[no_vars]}
       
   258 \rulename{field_mult_cancel_right}
       
   259 *}
       
   260 
       
   261 ML{*set show_sorts*}
       
   262 
       
   263 text{*
       
   264 effect of show sorts on the above
       
   265 
       
   266 @{thm[display] field_mult_cancel_right[no_vars]}
       
   267 \rulename{field_mult_cancel_right}
       
   268 *}
       
   269 
       
   270 ML{*reset show_sorts*}
       
   271 
       
   272 
       
   273 text{*
       
   274 absolute value
       
   275 
       
   276 @{thm[display] abs_mult[no_vars]}
       
   277 \rulename{abs_mult}
       
   278 
       
   279 @{thm[display] abs_le_iff[no_vars]}
       
   280 \rulename{abs_le_iff}
       
   281 
       
   282 @{thm[display] abs_triangle_ineq[no_vars]}
       
   283 \rulename{abs_triangle_ineq}
       
   284 
       
   285 @{thm[display] power_add[no_vars]}
       
   286 \rulename{power_add}
       
   287 
       
   288 @{thm[display] power_mult[no_vars]}
       
   289 \rulename{power_mult}
       
   290 
   203 @{thm[display] power_abs[no_vars]}
   291 @{thm[display] power_abs[no_vars]}
   204 \rulename{power_abs}
   292 \rulename{power_abs}
   205 
   293 
   206 @{thm[display] times_divide_eq_right[no_vars]}
   294 
   207 \rulename{times_divide_eq_right}
   295 *}
   208 
       
   209 @{thm[display] times_divide_eq_left[no_vars]}
       
   210 \rulename{times_divide_eq_left}
       
   211 
       
   212 @{thm[display] divide_divide_eq_right[no_vars]}
       
   213 \rulename{divide_divide_eq_right}
       
   214 
       
   215 @{thm[display] divide_divide_eq_left[no_vars]}
       
   216 \rulename{divide_divide_eq_left}
       
   217 
       
   218 @{thm[display] minus_divide_left[no_vars]}
       
   219 \rulename{minus_divide_left}
       
   220 
       
   221 @{thm[display] minus_divide_right[no_vars]}
       
   222 \rulename{minus_divide_right}
       
   223 
       
   224 This last NOT a simprule
       
   225 
       
   226 @{thm[display] add_divide_distrib[no_vars]}
       
   227 \rulename{add_divide_distrib}
       
   228 *}
       
   229 
       
   230 lemma "3/4 < (7/8 :: real)"
       
   231 by simp 
       
   232 
       
   233 lemma "P ((3/4) * (8/15 :: real))"
       
   234 txt{*
       
   235 @{subgoals[display,indent=0,margin=65]}
       
   236 *};
       
   237 apply simp 
       
   238 txt{*
       
   239 @{subgoals[display,indent=0,margin=65]}
       
   240 *};
       
   241 oops
       
   242 
       
   243 lemma "(3/4) * (8/15) < (x :: real)"
       
   244 txt{*
       
   245 @{subgoals[display,indent=0,margin=65]}
       
   246 *};
       
   247 apply simp 
       
   248 txt{*
       
   249 @{subgoals[display,indent=0,margin=65]}
       
   250 *};
       
   251 oops
       
   252 
       
   253 lemma "(3/4) * (10^15) < (x :: real)"
       
   254 apply simp 
       
   255 oops
       
   256 
       
   257 
   296 
   258 
   297 
   259 end
   298 end