Documentation

Analysis.Section_5_3

Аналіз I, Розділ 5.3: Побудова дійсних чисел #

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

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

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

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

Клас послідовностей Коші, що починаються з нуля

Instances
    theorem Chapter5.CauchySequence.ext {x y : CauchySequence} (n₀ : x.n₀ = y.n₀) (seq : x.seq = y.seq) :
    x = y
    @[reducible, inline]

    Послідовність, що починається з нуля і є Коші, можна розглядати як послідовність Коші.

    Equations
    Instances For
      @[simp]
      theorem Chapter5.CauchySequence.coe_eq {a : } (ha : (↑a).IsCauchy) :
      (mk' ha).toSequence = a
      @[simp]
      theorem Chapter5.CauchySequence.coe_to_sequence (a : CauchySequence) :
      (↑fun (n : ) => a.seq n) = a.toSequence
      @[simp]
      theorem Chapter5.CauchySequence.coe_coe {a : } (ha : (↑a).IsCauchy) :
      (fun (n : ) => (mk' ha).seq n) = a
      theorem Chapter5.Sequence.equiv_trans {a b c : } (hab : Equiv a b) (hbc : Equiv b c) :
      Equiv a c

      Твердження 5.3.3 / Вправа 5.3.1

      Твердження 5.3.3 / Вправа 5.3.1

      Equations
      • One or more equations did not get rendered due to their size.
      theorem Chapter5.CauchySequence.equiv_iff (a b : CauchySequence) :
      a b Sequence.Equiv (fun (n : ) => a.seq n) fun (n : ) => b.seq n
      theorem Chapter5.Sequence.IsCauchy.const (a : ) :
      (↑fun (x : ) => a).IsCauchy

      Будь-яка стала послідовність є послідовністю Коші.

      @[reducible, inline]
      Equations
      Instances For
        @[reducible, inline]
        noncomputable abbrev Chapter5.LIM (a : ) :

        У Lean зручно присвоювати "порожнє" значення 0 для LIM a, коли a не є послідовністю Коші. Це вимагає класичної логіки, оскільки властивість бути послідовністю Коші не є обчислюваною або вирішуваною.

        Equations
        Instances For
          theorem Chapter5.LIM_def {a : } (ha : (↑a).IsCauchy) :
          theorem Chapter5.Real.eq_lim (x : Real) :
          ∃ (a : ), (↑a).IsCauchy x = LIM a

          Визначення 5.3.1 (Дійсні числа)

          theorem Chapter5.Real.LIM_eq_LIM {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :

          Визначення 5.3.1 (Дійсні числа)

          theorem Chapter5.Sequence.IsCauchy.add {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :
          (↑(a + b)).IsCauchy

          Лема 5.3.6 (Сума послідовностей Коші є послідовністю Коші.)

          theorem Chapter5.Sequence.add_equiv_left {a a' : } (b : ) (haa' : Equiv a a') :
          Equiv (a + b) (a' + b)

          Лема 5.3.7 (Сума еквівалентних послідовностей є еквівалентною.)

          theorem Chapter5.Sequence.add_equiv_right {b b' : } (a : ) (hbb' : Equiv b b') :
          Equiv (a + b) (a + b')

          Лема 5.3.7 (Сума еквівалентних послідовностей є еквівалентною)

          theorem Chapter5.Sequence.add_equiv {a b a' b' : } (haa' : Equiv a a') (hbb' : Equiv b b') :
          Equiv (a + b) (a' + b')

          Лема 5.3.7 (Сума еквівалентних послідовностей є еквівалентною)

          noncomputable instance Chapter5.Real.add_inst :

          Визначення 5.3.4 (Додавання дійсних чисел)

          Equations
          • One or more equations did not get rendered due to their size.
          theorem Chapter5.Real.LIM_add {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :
          LIM a + LIM b = LIM (a + b)

          Визначення 5.3.4 (Додавання дійсних чисел)

          theorem Chapter5.Sequence.IsCauchy.mul {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :
          (↑(a * b)).IsCauchy

          Твердження 5.3.10 (Добуток послідовностей Коші є послідовністю Коші)

          theorem Chapter5.Sequence.mul_equiv_left {a a' : } (b : ) (hb : (↑b).IsCauchy) (haa' : Equiv a a') :
          Equiv (a * b) (a' * b)

          Твердження 5.3.10 (Добуток еквівалентних послідовностей є еквівалентним) / Вправа 5.3.2

          theorem Chapter5.Sequence.mul_equiv_right {b b' : } (a : ) (ha : (↑a).IsCauchy) (hbb' : Equiv b b') :
          Equiv (a * b) (a * b')

          Proposition 5.3.10 (Добуток еквівалентних послідовностей є еквівалентним) / Вправа 5.3.2

          theorem Chapter5.Sequence.mul_equiv {a b a' b' : } (ha : (↑a).IsCauchy) (hb' : (↑b').IsCauchy) (haa' : Equiv a a') (hbb' : Equiv b b') :
          Equiv (a * b) (a' * b')

          Proposition 5.3.10 (Добуток еквівалентних послідовностей є еквівалентним) / Вправа 5.3.2

          noncomputable instance Chapter5.Real.mul_inst :

          Визначення 5.3.9 (Добуток дійсних чисел)

          Equations
          • One or more equations did not get rendered due to their size.
          theorem Chapter5.Real.LIM_mul {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :
          LIM a * LIM b = LIM (a * b)
          theorem Chapter5.Real.ratCast_def (q : ) :
          q = LIM fun (x : ) => q
          @[simp]
          theorem Chapter5.Real.ratCast_inj (q r : ) :
          q = r q = r

          Вправа 5.3.3

          Equations
          Equations
          @[simp]
          theorem Chapter5.Real.LIM.zero :
          (LIM fun (x : ) => 0) = 0
          Equations
          theorem Chapter5.Real.ratCast_add (a b : ) :
          a + b = ↑(a + b)

          ratCast розподіляється щодо додавання

          theorem Chapter5.Real.ratCast_mul (a b : ) :
          a * b = ↑(a * b)

          ratCast розподіляється щодо множення

          noncomputable instance Chapter5.Real.instNeg :
          Equations
          theorem Chapter5.Real.neg_ratCast (a : ) :
          -a = ↑(-a)

          ratCast комутує з запереченням

          theorem Chapter5.Real.neg_LIM (a : ) (ha : (↑a).IsCauchy) :
          -LIM a = LIM (-a)

          Можливо, тут можна опустити гіпотезу про послідовність Коші.

          theorem Chapter5.Sequence.IsCauchy.neg (a : ) (ha : (↑a).IsCauchy) :
          (↑(-a)).IsCauchy
          theorem Chapter5.Real.sub_eq_add_neg (x y : Real) :
          x - y = x + -y
          theorem Chapter5.Sequence.IsCauchy.sub {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :
          (↑(a - b)).IsCauchy
          theorem Chapter5.Real.LIM_sub {a b : } (ha : (↑a).IsCauchy) (hb : (↑b).IsCauchy) :
          LIM a - LIM b = LIM (a - b)

          LIM розподіляється щодо віднімання

          theorem Chapter5.Real.ratCast_sub (a b : ) :
          a - b = ↑(a - b)

          ratCast розподіляється щодо віднімання

          Твердження 5.3.11 (закони алгебри)

          Equations

          Твердження 5.3.11 (закони алгебри)

          Equations
          • One or more equations did not get rendered due to their size.
          noncomputable instance Chapter5.Real.instCommRing :

          Твердження 5.3.11 (закони алгебри)

          Equations
          • One or more equations did not get rendered due to their size.
          @[reducible, inline]
          Equations
          • One or more equations did not get rendered due to their size.
          Instances For
            @[reducible, inline]

            Визначення 5.3.12 (послідовності, обмежені від нуля). Послідовності індексуються так, щоб починатися з нуля, оскільки це зручніше для цілей Mathlib.

            Equations
            Instances For
              theorem Chapter5.bounded_away_zero_def (a : ) :
              BoundedAwayZero a c > 0, ∀ (n : ), |a n| c
              theorem Chapter5.Real.boundedAwayZero_of_nonzero {x : Real} (hx : x 0) :
              ∃ (a : ), (↑a).IsCauchy BoundedAwayZero a x = LIM a

              Лема 5.3.14

              theorem Chapter5.Real.lim_of_boundedAwayZero {a : } (ha : BoundedAwayZero a) (ha_cauchy : (↑a).IsCauchy) :
              LIM a 0

              Цей результат не був явно зазначений у тексті, але потрібен у теорії. Це гарна вправа, тож я залишаю її як таку.

              theorem Chapter5.Real.inv_isCauchy_of_boundedAwayZero {a : } (ha : BoundedAwayZero a) (ha_cauchy : (↑a).IsCauchy) :

              Лема 5.3.15

              theorem Chapter5.Real.inv_of_equiv {a b : } (ha : BoundedAwayZero a) (ha_cauchy : (↑a).IsCauchy) (hb : BoundedAwayZero b) (hb_cauchy : (↑b).IsCauchy) (hlim : LIM a = LIM b) :

              Лема 5.3.17 (Операція взяття оберненого числа визначена коректно)

              noncomputable instance Chapter5.Real.instInv :

              Визначення 5.3.16 (Взяття оберненого числа дійсних чисел). Вимагає класичної логіки, оскільки потрібно присвоїти "сміттєве" значення оберненому 0.

              Equations
              theorem Chapter5.Real.inv_def {a : } (h : BoundedAwayZero a) (hc : (↑a).IsCauchy) :
              theorem Chapter5.Real.self_mul_inv {x : Real} (hx : x 0) :
              x * x⁻¹ = 1
              theorem Chapter5.Real.inv_mul_self {x : Real} (hx : x 0) :
              x⁻¹ * x = 1
              theorem Chapter5.BoundedAwayZero.const {q : } (hq : q 0) :
              BoundedAwayZero fun (x : ) => q

              Стандартне визначення ділення

              Equations
              • One or more equations did not get rendered due to their size.
              theorem Chapter5.Real.div_eq (x y : Real) :
              x / y = x * y⁻¹
              noncomputable instance Chapter5.Real.instField :
              Equations
              • One or more equations did not get rendered due to their size.
              theorem Chapter5.Real.mul_right_cancel₀ {x y z : Real} (hz : z 0) (h : x * z = y * z) :
              x = y
              theorem Chapter5.Real.mul_right_nocancel :
              ¬∀ (x y z : Real), z = 0x * z = y * zx = y
              theorem Chapter5.Real.IsBounded.equiv {a b : } (ha : (↑a).IsBounded) (hab : Sequence.Equiv a b) :
              (↑b).IsBounded

              Вправа 5.3.4

              theorem Chapter5.Sequence.IsCauchy.harmonic' :
              (↑fun (n : ) => 1 / (n + 1)).IsCauchy

              Те саме, що Sequence.IsCauchy.harmonic, але з перенумерацією послідовності як a₀ = 1, a₁ = 1/2, ... Ця форма зручніша для майбутнього доведення Теореми 5.5.9.

              theorem Chapter5.Real.LIM.harmonic :
              (LIM fun (n : ) => 1 / (n + 1)) = 0

              Вправа 5.3.5