equal
deleted
inserted
replaced
|
1 (* Title: IntFact.thy |
|
2 ID: $Id$ |
|
3 Author: Thomas M. Rasmussen |
|
4 Copyright 2000 University of Cambridge |
|
5 *) |
|
6 |
|
7 IntFact = IntPrimes + |
|
8 |
|
9 consts |
|
10 zfact :: int => int |
|
11 setprod :: int set => int |
|
12 d22set :: int => int set |
|
13 |
|
14 recdef zfact "measure ((% n.(nat n)) ::int=>nat)" |
|
15 "zfact n = (if n<=#0 then #1 else n*zfact(n-#1))" |
|
16 |
|
17 defs |
|
18 setprod_def "setprod A == (if finite A then fold (op*) #1 A else #1)" |
|
19 |
|
20 recdef d22set "measure ((%a.(nat a)) ::int=>nat)" |
|
21 "d22set a = (if #1<a then insert a (d22set (a-#1)) else {})" |
|
22 |
|
23 end |