src/HOL/NumberTheory/IntFact.thy
changeset 9508 4d01dbf6ded7
child 11049 7eef34adb852
equal deleted inserted replaced
9507:7903ca5fecf1 9508:4d01dbf6ded7
       
     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