| author | paulson | 
| Tue, 03 Aug 1999 13:15:54 +0200 | |
| changeset 7165 | 8c937127fd8c | 
| parent 5183 | 89f162de39cf | 
| child 8929 | 4829556a56f8 | 
| permissions | -rw-r--r-- | 
| 923 | 1 | (* Title: HOL/Arith.thy | 
| 2 | ID: $Id$ | |
| 3 | Author: Lawrence C Paulson, Cambridge University Computer Laboratory | |
| 4 | Copyright 1993 University of Cambridge | |
| 5 | ||
| 3366 | 6 | Arithmetic operators + - and * (for div, mod and dvd, see Divides) | 
| 923 | 7 | *) | 
| 8 | ||
| 9 | Arith = Nat + | |
| 10 | ||
| 11 | instance | |
| 3366 | 12 |   nat :: {plus, minus, times, power}
 | 
| 923 | 13 | |
| 4360 | 14 | (* size of a datatype value; overloaded *) | 
| 15 | consts size :: 'a => nat | |
| 1796 | 16 | |
| 5183 | 17 | primrec | 
| 3366 | 18 | add_0 "0 + n = n" | 
| 19 | add_Suc "Suc m + n = Suc(m + n)" | |
| 2681 
93ed51a91622
definitions of +,-,* replaced by primrec definitions
 pusch parents: 
2099diff
changeset | 20 | |
| 5183 | 21 | primrec | 
| 3235 
351565b7321b
The diff laws must be named: we do "Delsimps [diff_Suc];"
 paulson parents: 
2887diff
changeset | 22 | diff_0 "m - 0 = m" | 
| 4360 | 23 | diff_Suc "m - Suc n = (case m - n of 0 => 0 | Suc k => k)" | 
| 24 | ||
| 5183 | 25 | primrec | 
| 3366 | 26 | mult_0 "0 * n = 0" | 
| 27 | mult_Suc "Suc m * n = n + (m * n)" | |
| 2681 
93ed51a91622
definitions of +,-,* replaced by primrec definitions
 pusch parents: 
2099diff
changeset | 28 | |
| 923 | 29 | end |