| author | wenzelm | 
| Sun, 05 Jan 2025 13:24:17 +0100 | |
| changeset 81726 | 27ba0fed2071 | 
| parent 81122 | 84e459f09198 | 
| permissions | -rw-r--r-- | 
| 35762 | 1 | (* Title: ZF/ex/BinEx.thy | 
| 11399 | 2 | Author: Lawrence C Paulson, Cambridge University Computer Laboratory | 
| 3 | Copyright 1994 University of Cambridge | |
| 4 | ||
| 35762 | 5 | Examples of performing binary arithmetic by simplification. | 
| 11399 | 6 | *) | 
| 7 | ||
| 65449 
c82e63b11b8b
clarified main ZF.thy / ZFC.thy, and avoid name clash with global HOL/Main.thy;
 wenzelm parents: 
61395diff
changeset | 8 | theory BinEx imports ZF begin | 
| 11399 | 9 | |
| 10 | lemma "#13 $+ #19 = #32" | |
| 81122 | 11 | by simp | 
| 11399 | 12 | |
| 13 | lemma "#1234 $+ #5678 = #6912" | |
| 81122 | 14 | by simp | 
| 11399 | 15 | |
| 16 | lemma "#1359 $+ #-2468 = #-1109" | |
| 81122 | 17 | by simp | 
| 11399 | 18 | |
| 19 | lemma "#93746 $+ #-46375 = #47371" | |
| 81122 | 20 | by simp | 
| 11399 | 21 | |
| 22 | lemma "$- #65745 = #-65745" | |
| 81122 | 23 | by simp | 
| 11399 | 24 | |
| 25 | lemma "$- #-54321 = #54321" | |
| 81122 | 26 | by simp | 
| 11399 | 27 | |
| 28 | lemma "#13 $* #19 = #247" | |
| 81122 | 29 | by simp | 
| 11399 | 30 | |
| 31 | lemma "#-84 $* #51 = #-4284" | |
| 81122 | 32 | by simp | 
| 11399 | 33 | |
| 34 | (*The worst case for 8-bit operands *) | |
| 35 | lemma "#255 $* #255 = #65025" | |
| 81122 | 36 | by simp | 
| 11399 | 37 | |
| 38 | lemma "#1359 $* #-2468 = #-3354012" | |
| 81122 | 39 | by simp | 
| 11399 | 40 | |
| 41 | ||
| 42 | (** Comparisons **) | |
| 43 | ||
| 44 | lemma "(#89) $* #10 \<noteq> #889" | |
| 45 | by simp | |
| 46 | ||
| 47 | lemma "(#13) $< #18 $- #4" | |
| 48 | by simp | |
| 49 | ||
| 50 | lemma "(#-345) $< #-242 $+ #-100" | |
| 51 | by simp | |
| 52 | ||
| 53 | lemma "(#13557456) $< #18678654" | |
| 54 | by simp | |
| 55 | ||
| 61395 | 56 | lemma "(#999999) $\<le> (#1000001 $+ #1) $- #2" | 
| 11399 | 57 | by simp | 
| 58 | ||
| 61395 | 59 | lemma "(#1234567) $\<le> #1234567" | 
| 11399 | 60 | by simp | 
| 61 | ||
| 62 | ||
| 81122 | 63 | (*** Quotient and remainder [they could be faster] ***) | 
| 11399 | 64 | |
| 65 | lemma "#23 zdiv #3 = #7" | |
| 66 | by simp | |
| 67 | ||
| 68 | lemma "#23 zmod #3 = #2" | |
| 69 | by simp | |
| 70 | ||
| 71 | (** negative dividend **) | |
| 72 | ||
| 73 | lemma "#-23 zdiv #3 = #-8" | |
| 74 | by simp | |
| 75 | ||
| 76 | lemma "#-23 zmod #3 = #1" | |
| 77 | by simp | |
| 78 | ||
| 79 | (** negative divisor **) | |
| 80 | ||
| 81 | lemma "#23 zdiv #-3 = #-8" | |
| 82 | by simp | |
| 83 | ||
| 84 | lemma "#23 zmod #-3 = #-1" | |
| 85 | by simp | |
| 86 | ||
| 81122 | 87 | (** negative dividend and divisor **) | 
| 11399 | 88 | |
| 89 | lemma "#-23 zdiv #-3 = #7" | |
| 90 | by simp | |
| 91 | ||
| 92 | lemma "#-23 zmod #-3 = #-2" | |
| 93 | by simp | |
| 94 | ||
| 95 | end |