Аналіз I, Глава 3.5 #
Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
Вправа 3.5.1
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Технічна операція перетворююча об'єкт x
та множину Y
на множину {x} × Y
, необхідна для
визначення повного декартового добутку
Equations
- Chapter3.SetTheory.Set.slice x Y = Y.replace ⋯
Instances For
Визначення 3.5.2 (Декартовий добуток)
Equations
- X.cartesian Y = Chapter3.SetTheory.union (X.replace ⋯)
Instances For
Цей екземпляр дозволяє використовувати позначення ×ˢ для декартового добутку.
Equations
Equations
Instances For
Equations
Instances For
Прив'язка до Mathlib-овського добутку множин
Equations
- X.prod_equiv_prod Y = { toFun := sorry, invFun := sorry, left_inv := ⋯, right_inv := ⋯ }
Instances For
Визначення 3.5.7
Equations
- Chapter3.SetTheory.Set.tuple a = Chapter3.SetTheory.Set.object_of fun (i : I.toSubtype) => ⟨↑(a i), ⋯⟩
Instances For
Визначення 3.5.7
Equations
Instances For
Приклад 3.5.11. Я підозрюю, що більшість еквівалентностей вимагатимуть класичних міркувань і будуть визначені лише необчислювально, але був би радий дізнатися про контрприклади.
Equations
- Chapter3.SetTheory.Set.singleton_iProd_equiv i X = { toFun := sorry, invFun := sorry, left_inv := ⋯, right_inv := ⋯ }
Instances For
Приклад 3.5.11
Equations
- I.iProd_of_const_equiv X = { toFun := sorry, invFun := sorry, left_inv := ⋯, right_inv := ⋯ }
Instances For
Зв'язки із Mathlib-овським Set.pi
Equations
- I.iProd_equiv_pi X = { toFun := sorry, invFun := sorry, left_inv := ⋯, right_inv := ⋯ }
Instances For
Тут ми створюємо аналог Mathlib-івських типів Fin n
в рамках теорії множин з Розділу 3,
із рудиментарним API.
Equations
- Chapter3.SetTheory.Set.Fin n = Chapter3.nat.specify fun (m : Chapter3.nat.toSubtype) => Chapter3.SetTheory.Set.nat_equiv.symm m < n
Instances For
Я підозрюю, що ця еквівалентність необчислювана і вимагає класичної логіки, хіба що існує якийсь хитромудрий трюк.
Equations
- Chapter3.SetTheory.Set.Fin_equiv_Fin n = { toFun := sorry, invFun := sorry, left_inv := ⋯, right_inv := ⋯ }
Instances For
Вправа 3.5.1, друга частина (вимагає аксіоми регулярності)
Equations
- Chapter3.OrderedPair.toObject' = { toFun := fun (p : Chapter3.OrderedPair) => Chapter3.SetTheory.set_to_object {p.fst, Chapter3.SetTheory.set_to_object {p.fst, p.snd}}, inj' := ⋯ }
Instances For
Equations
- Chapter3.SetTheory.Set.iProd_equiv_tuples n X = { toFun := sorry, invFun := sorry, left_inv := ⋯, right_inv := ⋯ }
Instances For
Вправа 3.5.3. Дух завдання полягає в тому, щоб уникнути прямих переписувань (які роблять
усі ці твердження тривіальними), а натомість використовувати OrderedPair.eq
або
SetTheory.Set.tuple_inj
Equations
- Chapter3.SetTheory.Set.graph f = (X ×ˢ Y).specify fun (p : (X ×ˢ Y).toSubtype) => f (Chapter3.SetTheory.Set.fst p) = Chapter3.SetTheory.Set.snd p
Instances For
Вправа 3.5.11. Це тривіально випливає з SetTheory.Set.power_set_axiom'
, але вправа
полягає у виведенні твердження з SetTheory.Set.mem_powerset
.
Вправа 3.5.13