Аналіз I, Розділ 8.4: Аксіома вибору #
Я (прим. перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним підходом Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підправити", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
- Огляд типу залежного добутку Mathlib
∀ α, X α. - Аксіома вибору в різних еквівалентних формах, а також її рахункова версія.
Оскільки розділ 3, присвячений теорії множин, у багатьох місцях вже не використовується, ми не будемо
вставляти аксіому вибору безпосередньо в цю теорію у цьому тексті; проте це можна зробити за бажання
(наприклад, розширивши клас Chapter3.SetTheory до Chapter3.SetTheoryWithChoice), і студентам
можна запропонувати зробити це окремо. Натомість ми використовуватимемо вбудовану в Mathlib
аксіому Classical.choice. Технічно ця аксіома вже досить часто використовувалась у тексті, оскільки
Mathlib використовує Classical.choice для виведення багатьох слабших тверджень, наприклад закону виключеного третього.
Тож розмежування, зроблене в оригінальному тексті щодо того, чи використовує конкретне твердження
аксіому вибору, у цій формалізації дещо розмито. Теоретично можна відновити це розмежування,
прибравши залежність від Mathlib і працюючи з власними структурами типу
Chapter3.SetTheory і Chapter3.SetTheoryWithChoice, але це було б дуже трудомістким і тут не розглядається.
Визначення 8.4.1 (Нескінченні декартові добутки). Ми уникатимемо використання цієї
дефініції на користь форми Mathlib ∀ α, X α, яка, як незабаром покажемо є еквівалентною (або,
точніше, такою, що узагальнює) цю.
Оскільки Lean не дозволяє необмежених об'єднань типів, ми дещо обходимо це, припускаючи,
що всі X α є підмножинами в спільній універсі U. Зауважте, що визначення в Mathlib не має
цього обмеження.
Instances For
Еквівалентність з добутком у Mathlib
Equations
- One or more equations did not get rendered due to their size.
Instances For
Приклад 8.4.2.
Equations
- Chapter8.Function.equiv = { toFun := fun (f : I → X) => f, invFun := fun (f : I → X) => f, left_inv := ⋯, right_inv := ⋯ }
Instances For
Equations
- Chapter8.product_zero_equiv = { toFun := fun (f : (i : Fin 0) → X i) => PUnit.unit, invFun := fun (x : PUnit.{?u.13}) (i : Fin 0) => nomatch i, left_inv := ⋯, right_inv := ⋯ }
Instances For
Лема 8.4.5
Зауваження 8.4.6. Цей спеціальний випадок Леми 8.4.5 обходиться без (рахункової) аксіоми вибору.
Твердження 8.4.7 / Вправа 8.4.1
Вправа 8.4.1. Сенс цього завдання — встановити цей результат прямо з exists_function,
уникаючи попередніх результатів, що більш явно покладалися на аксіому вибору.
Вправа 8.4.2. Сенс цього завдання — встановити цей результат прямо з exists_set_singleton_intersect,
уникаючи попередніх результатів, що більш явно покладалися на аксіому вибору.
Вправа 8.4.3
Вправа 8.4.3. Сенс цього завдання — встановити цей результат прямо з Function.Injective.inv_surjective,
уникаючи попередніх результатів, що більш явно покладалися на аксіому вибору.