Fixpoint SubEquiN (N:nat) (x y:R) (del:posreal) : list R :=
match N with
| O => cons y nil
| S p => cons x (SubEquiN p (x + del) y del)
end.
Definition max_N (a b:R) (del:posreal) (h:a < b) : nat :=
let (N,_) := maxN del h in N.
Definition SubEqui (a b:R) (del:posreal) (h:a < b) : list R :=
SubEquiN (S (max_N del h)) a b del.

(* Specifications: *)
Lemma Heine_cor1 :
forall (f:R -> R) (a b:R),
a < b ->
(forall x:R, a <= x <= b -> continuity_pt f x) ->
forall eps:posreal,
{ delta:posreal |
delta <= b - a /\
(forall x y:R,
a <= x <= b ->
a <= y <= b -> Rabs (x - y) < delta -> Rabs (f x - f y) < eps) }.
Lemma Heine_cor2 :
forall (f:R -> R) (a b:R),
(forall x:R, a <= x <= b -> continuity_pt f x) ->
forall eps:posreal,
{ delta:posreal |
forall x y:R,
a <= x <= b ->
a <= y <= b -> Rabs (x - y) < delta -> Rabs (f x - f y) < eps }.
Lemma SubEqui_P1 :
forall (a b:R) (del:posreal) (h:a < b), pos_Rl (SubEqui del h) 0 = a.
Lemma SubEqui_P2 :
forall (a b:R) (del:posreal) (h:a < b),
pos_Rl (SubEqui del h) (pred (length (SubEqui del h))) = b.
Lemma SubEqui_P3 :
forall (N:nat) (a b:R) (del:posreal), length (SubEquiN N a b del) = S N.
Lemma SubEqui_P4 :
forall (N:nat) (a b:R) (del:posreal) (i:nat),
(i < S N)%nat -> pos_Rl (SubEquiN (S N) a b del) i = a + INR i * del.
Lemma SubEqui_P5 :
forall (a b:R) (del:posreal) (h:a < b),
length (SubEqui del h) = S (S (max_N del h)).
Lemma SubEqui_P6 :
forall (a b:R) (del:posreal) (h:a < b) (i:nat),
(i < S (max_N del h))%nat -> pos_Rl (SubEqui del h) i = a + INR i * del.
Lemma SubEqui_P7 :
forall (a b:R) (del:posreal) (h:a < b), ordered_Rlist (SubEqui del h).
Lemma SubEqui_P8 :
forall (a b:R) (del:posreal) (h:a < b) (i:nat),
(i < length (SubEqui del h))%nat -> a <= pos_Rl (SubEqui del h) i <= b.
Lemma SubEqui_P9 :
forall (a b:R) (del:posreal) (f:R -> R) (h:a < b),
{ g:StepFun a b |
g b = f b /\
(forall i:nat,
(i < pred (length (SubEqui del h)))%nat ->
constant_D_eq g
(co_interval (pos_Rl (SubEqui del h) i)
(pos_Rl (SubEqui del h) (S i)))
(f (pos_Rl (SubEqui del h) i))) }.
Lemma RiemannInt_P6 :
forall (f:R -> R) (a b:R),
a < b ->
(forall x:R, a <= x <= b -> continuity_pt f x) -> Riemann_integrable f a b.
Lemma RiemannInt_P7 : forall (f:R -> R) (a:R), Riemann_integrable f a a.
Lemma continuity_implies_RiemannInt :
forall (f:R -> R) (a b:R),
a <= b ->
(forall x:R, a <= x <= b -> continuity_pt f x) -> Riemann_integrable f a b.
Lemma RiemannInt_P8 :
forall (f:R -> R) (a b:R) (pr1:Riemann_integrable f a b)
(pr2:Riemann_integrable f b a), RiemannInt pr1 = - RiemannInt pr2.
Lemma RiemannInt_P9 :
forall (f:R -> R) (a:R) (pr:Riemann_integrable f a a), RiemannInt pr = 0.
(* L1([a,b]) is a vectorial space *)
Lemma RiemannInt_P10 :
forall (f g:R -> R) (a b l:R),
Riemann_integrable f a b ->
Riemann_integrable g a b ->
Riemann_integrable (fun x:R => f x + l * g x) a b.
Lemma RiemannInt_P11 :
forall (f:R -> R) (a b l:R) (un:nat -> posreal)
(phi1 phi2 psi1 psi2:nat -> StepFun a b),
Un_cv un 0 ->
(forall n:nat,
(forall t:R,
Rmin a b <= t <= Rmax a b -> Rabs (f t - phi1 n t) <= psi1 n t) /\
Rabs (RiemannInt_SF (psi1 n)) < un n) ->
(forall n:nat,
(forall t:R,
Rmin a b <= t <= Rmax a b -> Rabs (f t - phi2 n t) <= psi2 n t) /\
Rabs (RiemannInt_SF (psi2 n)) < un n) ->
Un_cv (fun N:nat => RiemannInt_SF (phi1 N)) l ->
Un_cv (fun N:nat => RiemannInt_SF (phi2 N)) l.
Lemma RiemannInt_P12 :
forall (f g:R -> R) (a b l:R) (pr1:Riemann_integrable f a b)
(pr2:Riemann_integrable g a b)
(pr3:Riemann_integrable (fun x:R => f x + l * g x) a b),
a <= b -> RiemannInt pr3 = RiemannInt pr1 + l * RiemannInt pr2.
Lemma RiemannInt_P13 :
forall (f g:R -> R) (a b l:R) (pr1:Riemann_integrable f a b)
(pr2:Riemann_integrable g a b)
(pr3:Riemann_integrable (fun x:R => f x + l * g x) a b),
RiemannInt pr3 = RiemannInt pr1 + l * RiemannInt pr2.
Lemma RiemannInt_P14 : forall a b c:R, Riemann_integrable (fct_cte c) a b.
Lemma RiemannInt_P15 :
forall (a b c:R) (pr:Riemann_integrable (fct_cte c) a b),
RiemannInt pr = c * (b - a).
Lemma RiemannInt_P16 :
forall (f:R -> R) (a b:R),
Riemann_integrable f a b -> Riemann_integrable (fun x:R => Rabs (f x)) a b.
Lemma Rle_cv_lim :
forall (Un Vn:nat -> R) (l1 l2:R),
(forall n:nat, Un n <= Vn n) -> Un_cv Un l1 -> Un_cv Vn l2 -> l1 <= l2.
Lemma RiemannInt_P17 :
forall (f:R -> R) (a b:R) (pr1:Riemann_integrable f a b)
(pr2:Riemann_integrable (fun x:R => Rabs (f x)) a b),
a <= b -> Rabs (RiemannInt pr1) <= RiemannInt pr2.
Lemma RiemannInt_P18 :
forall (f g:R -> R) (a b:R) (pr1:Riemann_integrable f a b)
(pr2:Riemann_integrable g a b),
a <= b ->
(forall x:R, a < x < b -> f x = g x) -> RiemannInt pr1 = RiemannInt pr2.
Lemma RiemannInt_P19 :
forall (f g:R -> R) (a b:R) (pr1:Riemann_integrable f a b)
(pr2:Riemann_integrable g a b),
a <= b ->
(forall x:R, a < x < b -> f x <= g x) -> RiemannInt pr1 <= RiemannInt pr2.
Lemma FTC_P1 :
forall (f:R -> R) (a b:R),
a <= b ->
(forall x:R, a <= x <= b -> continuity_pt f x) ->
forall x:R, a <= x -> x <= b -> Riemann_integrable f a x.