Аналіз I, Розділ 5.3: Побудова дійсних чисел #
Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
- Поняття формального границі послідовності Коші.
- Побудова типу дійсних чисел
Chapter5.Real. - Базові арифметичні операції та властивості.
Підказки від попередніх користувачів #
Користувачі супровідного матеріалу, які виконали вправи в цьому розділі, можуть надсилати свої поради майбутнім користувачам цього розділу як PRи.
- (Додайте підказку тут)
Послідовність, що починається з нуля і є Коші, можна розглядати як послідовність Коші.
Equations
- Chapter5.CauchySequence.mk' ha = { n₀ := 0, seq := (↑a).seq, vanish := ⋯, zero := Chapter5.CauchySequence.mk'._proof_2, cauchy := ha }
Instances For
Equations
- Chapter5.CauchySequence.instCoeFun = { coe := fun (a : Chapter5.CauchySequence) (n : ℕ) => a.seq ↑n }
Твердження 5.3.3 / Вправа 5.3.1
Equations
- One or more equations did not get rendered due to their size.
Будь-яка стала послідовність є послідовністю Коші.
Instances For
У Lean зручно присвоювати "порожнє" значення 0 для LIM a, коли a не є послідовністю Коші.
Це вимагає класичної логіки, оскільки властивість бути послідовністю Коші не є обчислюваною
або вирішуваною.
Equations
- Chapter5.LIM a = ⟦if h : (↑a).IsCauchy then Chapter5.CauchySequence.mk' h else 0⟧
Instances For
Визначення 5.3.4 (Додавання дійсних чисел)
Equations
- One or more equations did not get rendered due to their size.
Визначення 5.3.9 (Добуток дійсних чисел)
Equations
- One or more equations did not get rendered due to their size.
Equations
- Chapter5.Real.instRatCast = { ratCast := fun (q : ℚ) => ⟦Chapter5.CauchySequence.mk' ⋯⟧ }
Equations
- Chapter5.Real.instOfNat = { ofNat := ↑↑n }
Equations
- Chapter5.Real.instNatCast = { natCast := fun (n : ℕ) => ↑↑n }
Equations
- Chapter5.Real.instIntCast = { intCast := fun (n : ℤ) => ↑↑n }
Equations
- Chapter5.Real.instNeg = { neg := fun (x : Chapter5.Real) => ↑(-1) * x }
Твердження 5.3.11 (закони алгебри)
Твердження 5.3.11 (закони алгебри)
Equations
- Chapter5.Real.instAddCommGroup = { toAddGroup := Chapter5.Real.addGroup_inst, add_comm := Chapter5.Real.instAddCommGroup._proof_1 }
Твердження 5.3.11 (закони алгебри)
Equations
- One or more equations did not get rendered due to their size.
Твердження 5.3.11 (закони алгебри)
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Визначення 5.3.12 (послідовності, обмежені від нуля). Послідовності індексуються так, щоб починатися з нуля, оскільки це зручніше для цілей Mathlib.
Instances For
Цей результат не був явно зазначений у тексті, але потрібен у теорії. Це гарна вправа, тож я залишаю її як таку.
Лема 5.3.15
Визначення 5.3.16 (Взяття оберненого числа дійсних чисел). Вимагає класичної логіки, оскільки потрібно присвоїти "сміттєве" значення оберненому 0.
Equations
- Chapter5.Real.instInv = { inv := fun (x : Chapter5.Real) => if h : x ≠ 0 then Chapter5.LIM ⋯.choose⁻¹ else 0 }
Стандартне визначення ділення
Equations
- One or more equations did not get rendered due to their size.
Equations
- One or more equations did not get rendered due to their size.
Вправа 5.3.4