src/HOL/Old_Number_Theory/Chinese.thy
changeset 38159 e9b4835a54ee
parent 32479 521cc9bf2958
child 39159 0dec18004e75
equal deleted inserted replaced
38158:8aaa21db41f3 38159:e9b4835a54ee
     1 (*  Author:     Thomas M. Rasmussen
     1 (*  Title:      HOL/Old_Number_Theory/Chinese.thy
       
     2     Author:     Thomas M. Rasmussen
     2     Copyright   2000  University of Cambridge
     3     Copyright   2000  University of Cambridge
     3 *)
     4 *)
     4 
     5 
     5 header {* The Chinese Remainder Theorem *}
     6 header {* The Chinese Remainder Theorem *}
     6 
     7 
    17 *}
    18 *}
    18 
    19 
    19 
    20 
    20 subsection {* Definitions *}
    21 subsection {* Definitions *}
    21 
    22 
    22 consts
    23 primrec funprod :: "(nat => int) => nat => nat => int"
    23   funprod :: "(nat => int) => nat => nat => int"
    24 where
    24   funsum :: "(nat => int) => nat => nat => int"
       
    25 
       
    26 primrec
       
    27   "funprod f i 0 = f i"
    25   "funprod f i 0 = f i"
    28   "funprod f i (Suc n) = f (Suc (i + n)) * funprod f i n"
    26 | "funprod f i (Suc n) = f (Suc (i + n)) * funprod f i n"
    29 
    27 
    30 primrec
    28 primrec funsum :: "(nat => int) => nat => nat => int"
       
    29 where
    31   "funsum f i 0 = f i"
    30   "funsum f i 0 = f i"
    32   "funsum f i (Suc n) = f (Suc (i + n)) + funsum f i n"
    31 | "funsum f i (Suc n) = f (Suc (i + n)) + funsum f i n"
    33 
    32 
    34 definition
    33 definition
    35   m_cond :: "nat => (nat => int) => bool" where
    34   m_cond :: "nat => (nat => int) => bool" where
    36   "m_cond n mf =
    35   "m_cond n mf =
    37     ((\<forall>i. i \<le> n --> 0 < mf i) \<and>
    36     ((\<forall>i. i \<le> n --> 0 < mf i) \<and>