1 (* integration over the reals
4 (c) due to copyright terms
7 use_thy"Knowledge/Integrate";
8 use_thy_only"Knowledge/Integrate";
11 use_thy"Knowledge/Isac";
18 Integral :: "[real, real]=> real" ("Integral _ D _" 91)
19 (*new'_c :: "real => real" ("new'_c _" 66)*)
20 is'_f'_x :: "real => bool" ("_ is'_f'_x" 10)
22 (*descriptions in the related problems*)
23 integrateBy :: real => una
24 antiDerivative :: real => una
25 antiDerivativeName :: (real => real) => una
27 (*the CAS-command, eg. "Integrate (2*x^^^3, x)"*)
28 Integrate :: "[real * real] => real"
31 IntegrationScript :: "[real,real, real] => real"
32 ("((Script IntegrationScript (_ _ =))// (_))" 9)
33 NamedIntegrationScript :: "[real,real, real=>real, bool] => bool"
34 ("((Script NamedIntegrationScript (_ _ _=))// (_))" 9)
37 (*stated as axioms, todo: prove as theorems
38 'bdv' is a constant handled on the meta-level
39 specifically as a 'bound variable' *)
41 integral_const "Not (bdv occurs_in u) ==> Integral u D bdv = u * bdv"
42 integral_var "Integral bdv D bdv = bdv ^^^ 2 / 2"
44 integral_add "Integral (u + v) D bdv = \
45 \(Integral u D bdv) + (Integral v D bdv)"
46 integral_mult "[| Not (bdv occurs_in u); bdv occurs_in v |] ==> \
47 \Integral (u * v) D bdv = u * (Integral v D bdv)"
48 (*WN080222: this goes into sub-terms, too ...
49 call_for_new_c "[| Not (matches (u + new_c v) a); Not (a is_f_x) |] ==> \
52 integral_pow "Integral bdv ^^^ n D bdv = bdv ^^^ (n+1) / (n + 1)"