| 10519 |      1 | (*  Title:      HOL/PreList.thy
 | 
| 8563 |      2 |     ID:         $Id$
 | 
| 10733 |      3 |     Author:     Tobias Nipkow and Markus Wenzel
 | 
| 8563 |      4 |     Copyright   2000 TU Muenchen
 | 
|  |      5 | 
 | 
|  |      6 | A basis for building theory List on. Is defined separately to serve as a
 | 
|  |      7 | basis for theory ToyList in the documentation.
 | 
|  |      8 | *)
 | 
| 8490 |      9 | 
 | 
|  |     10 | theory PreList =
 | 
| 10212 |     11 |   Option + Wellfounded_Relations + NatSimprocs + Recdef + Record +
 | 
| 10261 |     12 |   Relation_Power + Calculation + SVC_Oracle:
 | 
| 8490 |     13 | 
 | 
| 10261 |     14 | (*belongs to theory HOL*)
 | 
|  |     15 | declare case_split [cases type: bool]
 | 
|  |     16 | 
 | 
|  |     17 | (*belongs to theory Wellfounded_Recursion*)
 | 
|  |     18 | declare wf_induct [induct set: wf]
 | 
| 9066 |     19 | 
 | 
| 10519 |     20 | (*belongs to theory Datatype_Universe; hides popular names *)
 | 
|  |     21 | hide const Node Atom Leaf Numb Lim Funs Split Case
 | 
| 10733 |     22 | hide type node item
 | 
| 10519 |     23 | 
 | 
| 10671 |     24 | 
 | 
| 10680 |     25 | (* generic summation indexed over nat *)
 | 
|  |     26 | 
 | 
|  |     27 | (*FIXME move to Ring_and_Field, when it is made part of main HOL (!?)*)
 | 
|  |     28 | (*FIXME port theorems from Algebra/abstract/NatSum*)
 | 
|  |     29 | 
 | 
| 10671 |     30 | consts
 | 
|  |     31 |   Summation :: "(nat => 'a::{zero,plus}) => nat => 'a"
 | 
|  |     32 | primrec
 | 
|  |     33 |   "Summation f 0 = 0"
 | 
|  |     34 |   "Summation f (Suc n) = Summation f n + f n"
 | 
|  |     35 | 
 | 
|  |     36 | syntax
 | 
|  |     37 |   "_Summation" :: "idt => nat => 'a => nat"    ("\<Sum>_<_. _" [0, 51, 10] 10)
 | 
|  |     38 | translations
 | 
|  |     39 |   "\<Sum>i < n. b" == "Summation (\<lambda>i. b) n"
 | 
|  |     40 | 
 | 
|  |     41 | theorem Summation_step:
 | 
|  |     42 |     "0 < n ==> (\<Sum>i < n. f i) = (\<Sum>i < n - 1. f i) + f (n - 1)"
 | 
|  |     43 |   by (induct n) simp_all
 | 
|  |     44 | 
 | 
| 8490 |     45 | end
 |