equal
deleted
inserted
replaced
375 "0 <= a ==> 0 <= b ==> 0 <= (a mod b :: int) & 0 <= a div b" |
375 "0 <= a ==> 0 <= b ==> 0 <= (a mod b :: int) & 0 <= a div b" |
376 apply (cases "b = 0", clarsimp) |
376 apply (cases "b = 0", clarsimp) |
377 apply (auto intro: pos_imp_zdiv_nonneg_iff [THEN iffD2]) |
377 apply (auto intro: pos_imp_zdiv_nonneg_iff [THEN iffD2]) |
378 done |
378 done |
379 |
379 |
|
380 declare iszero_0 [intro] |
|
381 |
|
382 lemma min_pm [simp]: |
|
383 "min a b + (a - b) = (a :: nat)" |
|
384 by arith |
|
385 |
|
386 lemma min_pm1 [simp]: |
|
387 "a - b + min a b = (a :: nat)" |
|
388 by arith |
|
389 |
|
390 lemma rev_min_pm [simp]: |
|
391 "min b a + (a - b) = (a :: nat)" |
|
392 by arith |
|
393 |
|
394 lemma rev_min_pm1 [simp]: |
|
395 "a - b + min b a = (a :: nat)" |
|
396 by arith |
|
397 |
|
398 lemma min_minus [simp]: |
|
399 "min m (m - k) = (m - k :: nat)" |
|
400 by arith |
|
401 |
|
402 lemma min_minus' [simp]: |
|
403 "min (m - k) m = (m - k :: nat)" |
|
404 by arith |
|
405 |
380 end |
406 end |
381 |
407 |