author | paulson |
Fri, 30 May 1997 15:21:21 +0200 | |
changeset 3372 | 6e472c8f0011 |
parent 1824 | 44254696843a |
child 3842 | b55686a7b22c |
permissions | -rw-r--r-- |
1476 | 1 |
(* Title: HOL/Hoare/Arith2.thy |
1335 | 2 |
ID: $Id$ |
1476 | 3 |
Author: Norbert Galm |
1335 | 4 |
Copyright 1995 TUM |
5 |
||
3372
6e472c8f0011
Replacement of "divides" by "dvd" from Divides.thy, and updating of proofs
paulson
parents:
1824
diff
changeset
|
6 |
More arithmetic. Much of this duplicates ex/Primes. |
1335 | 7 |
*) |
8 |
||
3372
6e472c8f0011
Replacement of "divides" by "dvd" from Divides.thy, and updating of proofs
paulson
parents:
1824
diff
changeset
|
9 |
Arith2 = Divides + |
1335 | 10 |
|
1558 | 11 |
constdefs |
1476 | 12 |
cd :: [nat, nat, nat] => bool |
3372
6e472c8f0011
Replacement of "divides" by "dvd" from Divides.thy, and updating of proofs
paulson
parents:
1824
diff
changeset
|
13 |
"cd x m n == x dvd m & x dvd n" |
1335 | 14 |
|
1558 | 15 |
gcd :: [nat, nat] => nat |
16 |
"gcd m n == @x.(cd x m n) & (!y.(cd y m n) --> y<=x)" |
|
1335 | 17 |
|
1558 | 18 |
pow :: [nat, nat] => nat (infixl 75) |
1824 | 19 |
"m pow n == nat_rec (Suc 0) (%u v.m*v) n" |
1558 | 20 |
|
21 |
fac :: nat => nat |
|
1824 | 22 |
"fac m == nat_rec (Suc 0) (%u v.(Suc u)*v) m" |
1335 | 23 |
|
24 |
end |