]> matita.cs.unibo.it Git - helm.git/blobdiff - matita/contribs/dama/dama_didactic/ex_seq.ma
branch for universe
[helm.git] / matita / contribs / dama / dama_didactic / ex_seq.ma
diff --git a/matita/contribs/dama/dama_didactic/ex_seq.ma b/matita/contribs/dama/dama_didactic/ex_seq.ma
new file mode 100644 (file)
index 0000000..fcefda2
--- /dev/null
@@ -0,0 +1,201 @@
+(**************************************************************************)
+(*       ___                                                              *)
+(*      ||M||                                                             *)
+(*      ||A||       A project by Andrea Asperti                           *)
+(*      ||T||                                                             *)
+(*      ||I||       Developers:                                           *)
+(*      ||T||         The HELM team.                                      *)
+(*      ||A||         http://helm.cs.unibo.it                             *)
+(*      \   /                                                             *)
+(*       \ /        This file is distributed under the terms of the       *)
+(*        v         GNU General Public License Version 2                  *)
+(*                                                                        *)
+(**************************************************************************)
+
+
+
+include "sequences.ma".
+
+(*
+ESERCIZI SULLE SUCCESSIONI
+
+Dimostrare che la successione alpha converge a 0
+*)
+
+definition F ≝ λ x:R.Rdiv x (S (S O)).
+
+definition alpha ≝ successione F R1.
+
+axiom cont: continuo F.
+
+lemma l1: monotone_not_increasing alpha.
+ we need to prove (monotone_not_increasing alpha)
+ or equivalently (∀n:nat. alpha (S n) ≤ alpha n).
+  assume n:nat.
+  we need to prove (alpha (S n) ≤ alpha n)
+  or equivalently (Rdiv (alpha n) (S (S O)) ≤ alpha n).
+  by _ done.
+qed.
+lemma l2: inf_bounded alpha.
+ we need to prove (inf_bounded alpha)
+ or equivalently (∃m. ∀n:nat. m ≤ alpha n).
+  (* da trovare il modo giusto *)
+  cut (∀n:nat.R0 ≤ alpha n).by (ex_intro ? ? R0 Hcut) done.
+  (* fatto *)
+  we need to prove (∀n:nat. R0 ≤ alpha n).
+  assume n:nat.
+  we proceed by induction on n to prove (R0 ≤ alpha n).
+  case O.
+    (* manca il comando 
+    the thesis becomes (R0 ≤ alpha O)
+    or equivalently (R0 ≤ R1).
+    by _ done. *)
+    (* approssimiamo con questo *)
+    we need to prove (R0 ≤ alpha O)
+    or equivalently (R0 ≤ R1).
+    by _ done.
+  case S (m:nat).
+   by induction hypothesis we know (R0 ≤ alpha m) (H).
+   we need to prove (R0 ≤ alpha (S m))
+   or equivalently (R0 ≤ Rdiv (alpha m) (S (S O))).
+    by _ done.
+qed.
+
+axiom xxx':
+∀ F: R → R. ∀b:R. continuo F →
+ ∀ l. tends_to (successione F b) l →
+  punto_fisso F l.
+
+theorem dimostrazione: tends_to alpha O.
+ by _ let l:R such that (tends_to alpha l) (H).
+(* unfold alpha in H.
+ change in match alpha in H with (successione F O).
+ check(xxx' F cont l H).*)
+ by (lim_punto_fisso F R1 cont l H)  we proved (punto_fisso F l) (H2)
+ that is equivalent to (l = (Rdiv l (S (S O)))).
+ by _ we proved (tends_to alpha l = tends_to alpha O) (H4).
+ rewrite < H4.
+ by _ done.
+qed.
+
+(******************************************************************************)
+
+(* Dimostrare che la successione alpha2 diverge *)
+
+definition F2 ≝ λ x:R. Rmult x x.
+
+definition alpha2 ≝ successione F2 (S (S O)).
+lemma uno: ∀n. alpha2 n ≥ R1.
+ we need to prove (∀n. alpha2 n ≥ R1).
+ assume n:nat.
+ we proceed by induction on n to prove (alpha2 n ≥ R1).
+ case O.
+   alias num (instance 0) = "natural number".
+   we need to prove (alpha2 0 ≥ R1)
+   or equivalently ((S (S O)) ≥ R1).
+   by _ done.
+ case S (m:nat).
+   by induction hypothesis we know (alpha2 m ≥ R1) (H).
+   we need to prove (alpha2 (S m) ≥ R1)
+   or equivalently (Rmult (alpha2 m) (alpha2 m) ≥ R1).letin xxx := (n ≤ n);
+   by _ we proved (R1 · R1 ≤ alpha2 m · alpha2 m) (H1).
+   by _ we proved (R1 · R1 = R1) (H2).
+   rewrite < H2.
+   by _ done.
+qed.
+
+lemma mono1: monotone_not_decreasing alpha2.
+ we need to prove (monotone_not_decreasing alpha2)
+ or equivalently (∀n:nat. alpha2 n ≤ alpha2 (S n)).
+ assume n:nat.
+ we need to prove (alpha2 n ≤ alpha2 (S n))
+ or equivalently (alpha2 n ≤ Rmult (alpha2 n) (alpha2 n)).
+ by _ done.
+qed.
+
+(*
+lemma due: ∀n. Relev (alpha2 0) n ≥ R0.
+ we need to prove (∀n. Relev (alpha2 0) n ≥ R0)
+ or equivalently (∀n. Relev (S (S O)) n ≥ R0).
+ by _ done.
+qed.
+
+lemma tre: ∀n. alpha2 (S n) ≥ Relev (alpha2 0) (S n).
+ we need to prove (∀n. alpha2 (S n) ≥ Relev (alpha2 0) (S n)).
+ assume n:nat.
+ we proceed by induction on n to prove (alpha2 (S n) ≥ Relev (alpha2 0) (S n)).
+ case 0.
+  we need to prove (alpha2 1 ≥ Relev (alpha2 0) R1)
+  or equivalently (Rmult R2 R2 ≥ R2).
+  by _ done.
+ case S (m:nat).
+  by induction hypothesis we know (alpha2 (S m) ≥ Relev (alpha2 0) (S m)) (H).
+  we need to prove (alpha2 (S (S m)) ≥ Relev (alpha2 0) (S (S m)))
+  or equivalently
+  (*..TODO..*)
+  
+theorem dim2: tends_to_inf alpha2.
+(*..TODO..*)
+qed.
+*)
+  
+(******************************************************************************)
+
+(* Dimostrare che la successione alpha3 converge a 0 *)
+(*
+definition alpha3 ≝ successione F2 (Rdiv (S 0) (S (S 0))).
+
+lemma quattro: ∀n. alpha3 n ≤ R1.
+ assume n:nat.
+ we need to prove (∀n. alpha3 n ≤ R1).
+ we proceed by induction on n to prove (alpha3 n ≤ R1).
+ case O.
+  we need to prove (alpha3 0 ≤ R1).
+  by _ done.
+ case S (m:nat).
+  by induction hypothesis we know (alpha3 m ≤ R1) (H).
+  we need to prove (alpha3 (S m) ≤ R1)
+  or equivalently (Rmult (alpha3 m) (alpha3 m) ≤ R1).
+  by _ done.
+ qed.
+
+lemma mono3: monotone_not_increasing alpha3.
+ we need to prove (monotone_not_increasing alpha3)
+ or equivalently (∀n:nat. alpha (S n) ≤ alpha n).
+  assume n:nat.
+  we need to prove (alpha (S n) ≤ alpha n)
+  or equivalently (Rmult (alpha3 n) (alpha3 n) ≤ alpha3 n).
+  by _ done.
+qed.
+
+lemma bound3: inf_bounded alpha3.
+ we need to prove (inf_bounded alpha3)
+ or equivalently (∃m. ∀n:nat. m ≤ alpha3 n).
+  (* da trovare il modo giusto *)
+  cut (∀n:nat.R0 ≤ alpha3 n).by (ex_intro ? ? R0 Hcut) done.
+  (* fatto *)
+  we need to prove (∀n:nat. R0 ≤ alpha3 n).
+  assume n:nat.
+  we proceed by induction on n to prove (R0 ≤ alpha3 n).
+  case O.
+    (* manca il comando 
+    the thesis becomes (R0 ≤ alpha O)
+    or equivalently (R0 ≤ R1).
+    by _ done. *)
+    (* approssimiamo con questo *)
+    we need to prove (R0 ≤ alpha3 O)
+    or equivalently (R0 ≤ Rdiv (S 0) (S (S 0))).
+    by _ done.
+  case S (m:nat).
+   by induction hypothesis we know (R0 ≤ alpha3 m) (H).
+   we need to prove (R0 ≤ alpha3 (S m))
+   or equivalently (R0 ≤ Rmult (alpha3 m) (alpha3 m)).
+   by _ done.
+qed.
+
+theorem dim3: tends_to alpha3 O.
+(*..TODO..*)
+qed.
+*)
\ No newline at end of file