src/sml/IsacKnowledge/Integrate.thy
author wneuper
Sat, 20 Aug 2005 21:20:16 +0200
changeset 2918 cac1f942e1a1
parent 2916 730089aebfcf
child 3747 2fae9b163442
permissions -rw-r--r--
find out why IntegrateScript doesnt work
     1 (* integration over the reals
     2    author: Walther Neuper
     3    050814, 08:51
     4    (c) due to copyright terms
     5 
     6 remove_thy"Integrate";
     7 use_thy"~/proto2/isac/src/sml/IsacKnowledge/Integrate";
     8 use_thy_only"~/proto2/isac/src/sml/IsacKnowledge/Integrate";
     9 
    10 remove_thy"Typefix";
    11 use_thy"~/proto2/isac/src/sml/IsacKnowledge/Isac";
    12 *)
    13 
    14 Integrate = Diff +
    15 
    16 consts
    17 
    18   Integral         :: "[real, real]=> real"    ("Integral _ D _" 91)
    19   new'_c	   :: "real => real"           ("new'_c _" 66)
    20 
    21   (*new Descriptions in the problem*)
    22   integrateBy      :: real => una
    23   antiDerivative   :: real => una
    24 
    25   (*the CAS-command*)
    26   Integrate        :: "[real * real] => real"  (* "integrate (2*x^^^3, x)" *)
    27 
    28   (*Script-names*)
    29   IntegrationScript      :: "[real,real,  real] => real"
    30                   ("((Script IntegrationScript (_ _ =))// (_))" 9)
    31   NamedIntegrationScript :: "[real,real,real,  bool] => bool"
    32                   ("((Script NamedIntegrationScript (_ _ _=))// (_))" 9)
    33 
    34 rules 
    35 (*stated as axioms, todo: prove as theorems
    36   'bdv' is a constant handled on the meta-level 
    37    specifically as a 'bound variable'            *)
    38 
    39   integral_const    "Not (bdv occurs_in u) ==> Integral u D bdv = u * bdv"
    40   integral_var      "Integral bdv D bdv = bdv ^^^ 2 / 2"
    41 
    42   integral_add      "Integral (u + v) D bdv = \
    43 		    \(Integral u D bdv) + (Integral v D bdv)"
    44   integral_mult     "[| Not (bdv occurs_in u); bdv occurs_in v |] ==> \
    45 		    \Integral (u * v) D bdv = u * (Integral v D bdv)"
    46   call_for_new_c    "Not (matches (u + new_c v) a) ==> a = a + new_c a"
    47 
    48   integral_pow      "Integral bdv ^^^ n D bdv = bdv ^^^ (n+1) / (n + 1)"
    49 
    50 end