Documentation

Analysis.Section_6_1

Аналіз I, Глава 6.1 #

I have attempted to make the translation as faithful a paraphrasing as possible of the original text. When there is a choice between a more idiomatic Lean solution and a more faithful translation, I have generally chosen the latter. In particular, there will be places where the Lean code could be "golfed" to be more elegant and idiomatic, but I have consciously avoided doing so.

Main constructions and results of this section:

@[reducible, inline]
abbrev Real.close (ε x y : ) :
Equations
Instances For
    theorem Real.close_def (ε x y : ) :
    ε.close x y dist x y ε

    Визначення 6.1.2 (ε-close). This is similar to the previous notion of ε-closeness, but where all quantities are real instead of rational.

    Визначення 6.1.3 (Sequence). This is similar to the Chapter 5 sequence, except that now the sequence is real-valued. As with Chapter 5, we start sequences from 0 by default.

    Instances For
      theorem Chapter6.Sequence.ext {x y : Sequence} (m : x.m = y.m) (seq : x.seq = y.seq) :
      x = y
      theorem Chapter6.Sequence.ext_iff {x y : Sequence} :
      x = y x.m = y.m x.seq = y.seq

      Sequences can be thought of as functions from ℤ to ℝ.

      Equations

      Functions from ℕ to ℝ can be thought of as sequences.

      Equations
      @[reducible, inline]
      abbrev Chapter6.Sequence.mk' (m : ) (a : { n : // n m }) :
      Equations
      Instances For
        theorem Chapter6.Sequence.eval_mk {n m : } (a : { n : // n m }) (h : n m) :
        (mk' m a).seq n = a n, h
        @[simp]
        theorem Chapter6.Sequence.eval_coe (n : ) (a : ) :
        { m := 0, seq := fun (n : ) => if n 0 then a n.toNat else 0, vanish := }.seq n = a n
        @[reducible, inline]

        a.from n₁ starts a:Sequence from n₁. It is intended for use when n₁ ≥ n₀, but returns the "junk" value of the original sequence a otherwise.

        Equations
        Instances For
          theorem Chapter6.Sequence.from_eval (a : Sequence) {m₁ n : } (hn : n m₁) :
          (a.from m₁).seq n = a.seq n
          @[reducible, inline]
          abbrev Real.steady (ε : ) (a : Chapter6.Sequence) :

          Визначення 6.1.3 (ε-steady)

          Equations
          Instances For
            theorem Real.steady_def (ε : ) (a : Chapter6.Sequence) :
            ε.steady a na.m, ma.m, ε.close (a.seq n) (a.seq m)

            Визначення 6.1.3 (ε-steady)

            @[reducible, inline]

            Визначення 6.1.3 (Eventually ε-steady)

            Equations
            Instances For
              theorem Real.eventuallySteady_def (ε : ) (a : Chapter6.Sequence) :
              ε.eventuallySteady a Na.m, ε.steady (a.from N)

              Визначення 6.1.3 (Eventually ε-steady)

              theorem Real.steady_mono {a : Chapter6.Sequence} {ε₁ ε₂ : } ( : ε₁ ε₂) (hsteady : ε₁.steady a) :
              ε₂.steady a
              theorem Real.eventuallySteady_mono {a : Chapter6.Sequence} {ε₁ ε₂ : } ( : ε₁ ε₂) (hsteady : ε₁.eventuallySteady a) :
              @[reducible, inline]

              Визначення 6.1.3 (Cauchy sequence)

              Equations
              Instances For

                Визначення 6.1.3 (Cauchy sequence)

                theorem Chapter6.Sequence.isCauchy_of_coe (a : ) :
                { m := 0, seq := fun (n : ) => if n 0 then a n.toNat else 0, vanish := }.isCauchy ε > 0, ∃ (N : ), jN, kN, dist (a j) (a k) ε
                theorem Chapter6.Sequence.isCauchy_of_mk {n₀ : } (a : { n : // n n₀ }) :
                (mk' n₀ a).isCauchy ε > 0, Nn₀, jN, kN, dist ((mk' n₀ a).seq j) ((mk' n₀ a).seq k) ε
                Equations
                @[simp]
                theorem Chapter6.Chapter5.coe_sequence_eval (a : Chapter5.Sequence) (n : ) :
                { m := a.n₀, seq := fun (n : ) => (a.seq n), vanish := }.seq n = (a.seq n)
                theorem Chapter6.Sequence.is_steady_of_rat (ε : ) (a : Chapter5.Sequence) :
                ε.steady a (↑ε).steady { m := a.n₀, seq := fun (n : ) => (a.seq n), vanish := }
                theorem Chapter6.Sequence.is_eventuallySteady_of_rat (ε : ) (a : Chapter5.Sequence) :
                ε.eventuallySteady a (↑ε).eventuallySteady { m := a.n₀, seq := fun (n : ) => (a.seq n), vanish := }
                theorem Chapter6.Sequence.isCauchy_of_rat (a : Chapter5.Sequence) :
                a.isCauchy { m := a.n₀, seq := fun (n : ) => (a.seq n), vanish := }.isCauchy

                Твердження 6.1.4

                @[reducible, inline]
                abbrev Real.close_seq (ε : ) (a : Chapter6.Sequence) (L : ) :

                Визначення 6.1.5

                Equations
                Instances For
                  theorem Real.close_seq_def (ε : ) (a : Chapter6.Sequence) (L : ) :
                  ε.close_seq a L na.m, dist (a.seq n) L ε

                  Визначення 6.1.5

                  @[reducible, inline]

                  Визначення 6.1.5

                  Equations
                  Instances For
                    theorem Real.eventually_close_def (ε : ) (a : Chapter6.Sequence) (L : ) :
                    ε.eventually_close a L Na.m, ε.close_seq (a.from N) L

                    Визначення 6.1.5

                    theorem Real.close_seq_mono {L : } {a : Chapter6.Sequence} {ε₁ ε₂ : } ( : ε₁ ε₂) (hclose : ε₁.close_seq a L) :
                    ε₂.close_seq a L
                    theorem Real.eventually_close_mono {L : } {a : Chapter6.Sequence} {ε₁ ε₂ : } ( : ε₁ ε₂) (hclose : ε₁.eventually_close a L) :
                    @[reducible, inline]
                    Equations
                    Instances For
                      theorem Chapter6.Sequence.tendsTo_def (a : Sequence) (L : ) :
                      a.tendsTo L ε > 0, ε.eventually_close a L
                      theorem Chapter6.Sequence.tendsTo_iff (a : Sequence) (L : ) :
                      a.tendsTo L ε > 0, ∃ (N : ), nN, |a.seq n - L| ε

                      Вправа 6.1.2

                      @[reducible, inline]
                      noncomputable abbrev Chapter6.seq_6_1_6 :
                      Equations
                      Instances For
                        theorem Chapter6.Sequence.tendsTo_unique (a : Sequence) {L L' : } (h : L L') :
                        ¬(a.tendsTo L a.tendsTo L')

                        Твердження 6.1.7 (Uniqueness of limits)

                        @[reducible, inline]

                        Визначення 6.1.8

                        Equations
                        Instances For

                          Визначення 6.1.8

                          @[reducible, inline]

                          Визначення 6.1.8

                          Equations
                          Instances For

                            Визначення 6.1.8

                            @[reducible, inline]
                            noncomputable abbrev Chapter6.lim (a : Sequence) :

                            Визначення 6.1.8. We give the limit of a sequence the junk value of 0 if it is not convergent.

                            Equations
                            Instances For

                              Визначення 6.1.8

                              Визначення 6.1.8

                              theorem Chapter6.Sequence.lim_harmonic :
                              { m := 0, seq := fun (n : ) => if n 0 then (fun (n : ) => (n + 1)⁻¹) n.toNat else 0, vanish := }.convergent lim { m := 0, seq := fun (n : ) => if n 0 then (fun (n : ) => (n + 1)⁻¹) n.toNat else 0, vanish := } = 0

                              Твердження 6.1.11

                              Твердження 6.1.12 / Вправа 6.1.5

                              theorem Chapter6.Sequence.lim_eq_LIM {a : } (h : { n₀ := 0, seq := fun (n : ) => if n 0 then a n.toNat else 0, vanish := }.isCauchy) :
                              { m := { n₀ := 0, seq := fun (n : ) => if n 0 then a n.toNat else 0, vanish := }.n₀, seq := fun (n : ) => ({ n₀ := 0, seq := fun (n : ) => if n 0 then a n.toNat else 0, vanish := }.seq n), vanish := }.tendsTo (Chapter5.Real.equivR (Chapter5.LIM a))

                              Твердження 6.1.15 / Вправа 6.1.6 (Formal limits are genuine limits)

                              @[reducible, inline]

                              Визначення 6.1.16

                              Equations
                              Instances For
                                theorem Chapter6.Sequence.BoundedBy_def (a : Sequence) (M : ) :
                                a.BoundedBy M ∀ (n : ), |a.seq n| M

                                Визначення 6.1.16

                                @[reducible, inline]

                                Визначення 6.1.16

                                Equations
                                Instances For

                                  Визначення 6.1.16

                                  Наслідок 6.1.17

                                  Equations
                                  theorem Chapter6.Sequence.lim_add {a b : Sequence} (ha : a.convergent) (hb : b.convergent) :
                                  (a + b).convergent lim (a + b) = lim a + lim b

                                  Теорема 6.1.19(a) (limit laws)

                                  Equations
                                  theorem Chapter6.Sequence.lim_mul {a b : Sequence} (ha : a.convergent) (hb : b.convergent) :
                                  (a * b).convergent lim (a * b) = lim a * lim b

                                  Теорема 6.1.19(b) (limit laws)

                                  Equations
                                  theorem Chapter6.Sequence.lim_smul (c : ) {a : Sequence} (ha : a.convergent) :
                                  (c a).convergent lim (c a) = c * lim a

                                  Теорема 6.1.19(c) (limit laws)

                                  Equations
                                  theorem Chapter6.Sequence.lim_sub {a b : Sequence} (ha : a.convergent) (hb : b.convergent) :
                                  (a - b).convergent lim (a - b) = lim a - lim b

                                  Теорема 6.1.19(d) (limit laws)

                                  noncomputable instance Chapter6.Sequence.inst_inv :
                                  Equations

                                  Теорема 6.1.19(e) (limit laws)

                                  noncomputable instance Chapter6.Sequence.inst_div :
                                  Equations
                                  theorem Chapter6.Sequence.lim_div {a b : Sequence} (ha : a.convergent) (hb : b.convergent) (hnon : lim b 0) :
                                  (a / b).convergent lim (a / b) = lim a / lim b

                                  Теорема 6.1.19(f) (limit laws)

                                  Equations
                                  theorem Chapter6.Sequence.lim_max {a b : Sequence} (ha : a.convergent) (hb : b.convergent) (hnon : lim b 0) :
                                  (ab).convergent lim (ab) = max (lim a) (lim b)

                                  Теорема 6.1.19(g) (limit laws)

                                  Equations
                                  theorem Chapter6.Sequence.lim_min {a b : Sequence} (ha : a.convergent) (hb : b.convergent) (hnon : lim b 0) :
                                  (ab).convergent lim (ab) = min (lim a) (lim b)

                                  Теорема 6.1.19(h) (limit laws)

                                  theorem Chapter6.Sequence.mono_if {a : } (ha : ∀ (n : ), a (n + 1) > a n) {n m : } (hnm : m > n) :
                                  a m > a n

                                  Вправа 6.1.1

                                  theorem Chapter6.Sequence.tendsTo_of_from {a : Sequence} {c : } (m : ) :
                                  a.tendsTo c (a.from m).tendsTo c

                                  Вправа 6.1.3

                                  theorem Chapter6.Sequence.tendsTo_of_shift {a : Sequence} {c : } (k : ) :
                                  a.tendsTo c (mk' a.m fun (n : { n : // n a.m }) => a.seq (n + k)).tendsTo c

                                  Вправа 6.1.4

                                  theorem Chapter6.Sequence.isBounded_of_rat (a : Chapter5.Sequence) :
                                  a.isBounded { m := a.n₀, seq := fun (n : ) => (a.seq n), vanish := }.isBounded

                                  Вправа 6.1.7

                                  Вправа 6.1.9

                                  theorem Chapter6.Chapter5.Sequence.isCauchy_iff (a : Chapter5.Sequence) :
                                  a.isCauchy ε > 0, Na.n₀, nN, mN, |a.seq n - a.seq m| ε

                                  Вправа 6.1.10