Documentation

Analysis.Section_5_1

Аналіз I, Розділ 5.1: Послідовності Коші #

Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.

Основні побудови та результати цього розділу:

Підказки від попередніх користувачів #

Користувачі супровідного матеріалу, які виконали вправи в цьому розділі, можуть надсилати свої поради майбутнім користувачам цього розділу як PRи.

Визначення 5.1.1 (Послідовність). Щоб уникнути деяких технічних питань, пов’язаних із залежними типами, ми розширюємо послідовності нулями ліворуч від початкової точки n₀.

Instances For
    theorem Chapter5.Sequence.ext {x y : Sequence} (n₀ : x.n₀ = y.n₀) (seq : x.seq = y.seq) :
    x = y

    Послідовності можна розглядати як функції з ℤ у ℚ.

    Equations

    Функції з ℕ у ℚ можна розглядати як послідовності, що починаються з 0; ofNatFun виконує це перетворення.

    Атрибут coe дозволяє делаборатору виводити Sequence.ofNatFun f як ↑f, що є більш стислим; ви можете безпечно видалити його, якщо віддаєте перевагу більш явному позначенню.

    Equations
    Instances For

      Якщо a : ℕ → ℚ використовується в контексті, де очікується Sequence, автоматично перетворюйте a на Sequence.ofNatFun a (що буде гарно виведено як ↑a).

      Equations
      @[reducible, inline]
      abbrev Chapter5.Sequence.mk' (n₀ : ) (a : { n : // n n₀ }) :
      Equations
      Instances For
        theorem Chapter5.Sequence.eval_mk {n n₀ : } (a : { n : // n n₀ }) (h : n n₀) :
        (mk' n₀ a).seq n = a n, h
        @[simp]
        theorem Chapter5.Sequence.eval_coe (n : ) (a : ) :
        (↑a).seq n = a n
        @[simp]
        theorem Chapter5.Sequence.eval_coe_at_int (n : ) (a : ) :
        (↑a).seq n = if n 0 then a n.toNat else 0
        @[simp]
        theorem Chapter5.Sequence.n0_coe (a : ) :
        (↑a).n₀ = 0
        @[reducible, inline]

        Приклад 5.1.2

        Equations
        Instances For
          @[reducible, inline]

          Приклад 5.1.2

          Equations
          Instances For
            @[reducible, inline]

            Приклад 5.1.2

            Equations
            Instances For
              @[reducible, inline]
              abbrev Rat.Steady (ε : ) (a : Chapter5.Sequence) :

              Невелике узагальнення Визначення 5.1.3 — визначення ε-сталості для послідовності з довільною початковою точкою n₀.

              Equations
              Instances For
                theorem Rat.steady_def (ε : ) (a : Chapter5.Sequence) :
                ε.Steady a na.n₀, ma.n₀, ε.Close (a.seq n) (a.seq m)
                theorem Chapter5.Rat.Steady.coe (ε : ) (a : ) :
                ε.Steady a ∀ (n m : ), ε.Close (a n) (a m)

                Визначення 5.1.3 — визначення ε-сталості для послідовності, що починається з 0.

                @[reducible, inline]

                a.Від n₁ починається a:Sequence з n₁. Його призначено для використання, коли n₁ ≥ n₀, але в іншому випадку воно повертає "сміттєве" значення оригінальної послідовності a.

                Equations
                Instances For
                  theorem Chapter5.Sequence.from_eval (a : Sequence) {n₁ n : } (hn : n n₁) :
                  (a.from n₁).seq n = a.seq n
                  @[reducible, inline]

                  Визначення 5.1.6 (ε-стійка з часом)

                  Equations
                  Instances For
                    theorem Rat.eventuallySteady_def (ε : ) (a : Chapter5.Sequence) :
                    ε.EventuallySteady a Na.n₀, ε.Steady (a.from N)
                    theorem Chapter5.Sequence.ex_5_1_7_a :
                    ¬Rat.Steady 0.1 fun (n : ) => (n + 1)⁻¹

                    Приклад 5.1.7: Послідовність 1, 1/2, 1/3, ... не є 0,1-стійкою.

                    theorem Chapter5.Sequence.ex_5_1_7_b :
                    Rat.Steady 0.1 ((↑fun (n : ) => (n + 1)⁻¹).from 10)

                    Приклад 5.1.7: Послідовність a_10, a_11, a_12, ... є 0.1-стійкою

                    theorem Chapter5.Sequence.ex_5_1_7_c :
                    Rat.EventuallySteady 0.1 fun (n : ) => (n + 1)⁻¹

                    Приклад 5.1.7: Послідовність 1, 1/2, 1/3, ... з часом є 0,1-стійкою.

                    theorem Chapter5.Sequence.ex_5_1_7_d {ε : } ( : ε > 0) :
                    ε.EventuallySteady fun (n : ) => if n = 0 then 10 else 0

                    Приклад 5.1.7

                    Послідовність 10, 0, 0, ... з часом є ε-стійкою для будь-якого ε > 0. Залишено як вправу.

                    @[reducible, inline]
                    Equations
                    Instances For
                      theorem Chapter5.Sequence.IsCauchy.coe (a : ) :
                      (↑a).IsCauchy ε > 0, ∃ (N : ), jN, kN, Section_4_3.dist (a j) (a k) ε

                      Визначення послідовностей Коші для послідовності, що починається з 0.

                      theorem Chapter5.Sequence.IsCauchy.mk {n₀ : } (a : { n : // n n₀ }) :
                      (mk' n₀ a).IsCauchy ε > 0, Nn₀, jN, kN, Section_4_3.dist ((mk' n₀ a).seq j) ((mk' n₀ a).seq k) ε
                      Equations
                      Instances For

                        Приклад 5.1.10. (Це вимагає ґрунтовного знайомства з API Mathlib для дійсних чисел.)

                        Приклад 5.1.10. (Це вимагає ґрунтовного знайомства з API Mathlib для дійсних чисел.)

                        theorem Chapter5.Sequence.IsCauchy.harmonic :
                        (mk' 1 fun (n : { n : // n 1 }) => 1 / n).IsCauchy

                        Твердження 5.1.11. Гармонічна послідовність, визначена як a₁ = 1, a₂ = 1/2, ... є послідовністю Коші.

                        @[reducible, inline]
                        abbrev Chapter5.BoundedBy {n : } (a : Fin n) (M : ) :
                        Equations
                        Instances For
                          theorem Chapter5.boundedBy_def {n : } (a : Fin n) (M : ) :
                          BoundedBy a M ∀ (i : Fin n), |a i| M

                          Визначення 5.1.12 (обмежені послідовності). Тут ми починаємо послідовності з 0 замість 1, щоб краще узгоджуватись із конвенціями Mathlib.

                          @[reducible, inline]
                          Equations
                          Instances For
                            theorem Chapter5.Sequence.boundedBy_def (a : Sequence) (M : ) :
                            a.BoundedBy M ∀ (n : ), |a.seq n| M

                            Визначення 5.1.12 (обмежені послідовності)

                            @[reducible, inline]
                            Equations
                            Instances For

                              Визначення 5.1.12 (обмежені послідовності)

                              theorem Chapter5.IsBounded.finite {n : } (a : Fin n) :
                              M0, BoundedBy a M

                              Лема 5.1.14

                              Лема 5.1.15 (Послідовності Коші є обмеженими) / Вправа 5.1.1

                              theorem Chapter5.Sequence.isBounded_add {a b : } (ha : (↑a).IsBounded) (hb : (↑b).IsBounded) :
                              (↑(a + b)).IsBounded

                              Вправа 5.1.2

                              theorem Chapter5.Sequence.isBounded_sub {a b : } (ha : (↑a).IsBounded) (hb : (↑b).IsBounded) :
                              (↑(a - b)).IsBounded
                              theorem Chapter5.Sequence.isBounded_mul {a b : } (ha : (↑a).IsBounded) (hb : (↑b).IsBounded) :
                              (↑(a * b)).IsBounded