Аналіз I, Глава 3.3 #
Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
- Поняття функції
Function X Yміж двома множинамиX,Yв теорії множин із глави 3.1 - Різні співвідношення з поняттям функції
X → Yу Mathlib між двома типамиX,Y. (Примітка із глави 3.1, що кожнаSetXтакож може бути розглянути як підтип{ x:Object // x ∈ X }Object.) - Basic function properties and operations, such as composition, one-to-one and onto functions, and inverses. Основні властивості та операції над функціями, такі як композиція, ін'єктивні функції, сур'єктивні функції, та обернені функції.
У решті книги ми відмовимося від версії функції із Розділу 3 та працюватимемо з поняттям
функції із Mathlib. Навіть у цьому розділі ми перейдемо до формалізму Mathlib для деяких прикладів,
що стосуються систем числення, таких як ℤ або ℝ, які не були реалізовані у фреймворку Розділу 3.
Перетворення функції f: Function X Y із Розділу 3 на функцію Mathlib f: X → Y.
Визначення функції із Розділу 3 було неконструктивним, тому тут нам доведеться
використати аксіому вибору.
Equations
- Chapter3.Function.inst_coefn X Y = { coe := fun (f : Chapter3.Function X Y) (x : X.toSubtype) => Classical.choose ⋯ }
Приклад 3.3.2.
Equations
Instances For
Equations
- Chapter3.SetTheory.Set.f_3_3_2a = { P := Chapter3.P_3_3_2a, unique := ⋯ }
Instances For
Equations
Instances For
Equations
- Chapter3.SetTheory.Set.f_3_3_2c = { P := Chapter3.SetTheory.Set.P_3_3_2c, unique := ⋯ }
Instances For
Equations
- Chapter3.SetTheory.Set.f_3_3_4 = { P := Chapter3.SetTheory.Set.P_3_3_4, unique := ⋯ }
Instances For
Визначення 3.3.7 (Рівність функцій)
Приклад 3.3.8 (спрощений). Другу частину прикладу складно відтворити в цьому формалізмі, тому натомість цього пропонується замінник із Mathlib.
Equations
- Chapter3.SetTheory.Set.f_3_3_8a = Chapter3.Function.mk_fn fun (x : Chapter3.nat.toSubtype) => ↑(Chapter3.SetTheory.Set.nat_equiv.symm x ^ 2 + 2 * Chapter3.SetTheory.Set.nat_equiv.symm x + 1)
Instances For
Equations
- Chapter3.SetTheory.Set.f_3_3_8b = Chapter3.Function.mk_fn fun (x : Chapter3.nat.toSubtype) => ↑((Chapter3.SetTheory.Set.nat_equiv.symm x + 1) ^ 2)
Instances For
Визначення 3.3.10 (Композиція)
Equations
- g○f = Chapter3.Function.mk_fn fun (x : X.toSubtype) => (fun (x : Y.toSubtype) => Classical.choose ⋯) ((fun (x : X.toSubtype) => Classical.choose ⋯) x)
Instances For
Equations
- Chapter3.«term_○_» = Lean.ParserDescr.trailingNode `Chapter3.«term_○_» 90 91 (Lean.ParserDescr.binary `andthen (Lean.ParserDescr.symbol "○") (Lean.ParserDescr.cat `term 91))
Instances For
Приклад 3.3.11
Equations
Instances For
Equations
Instances For
Equations
- f.one_to_one = ∀ (x x' : X.toSubtype), x ≠ x' → (fun (x : X.toSubtype) => Classical.choose ⋯) x ≠ (fun (x : X.toSubtype) => Classical.choose ⋯) x'
Instances For
Сумісність із Mathlib-івським Function.Injective. Можливо, ви захочете скористатися тактикою unfold,
щоб зрозуміти такі концепції Mathlib, як Function.Injective.
Приклад 3.3.15. Одна половина прикладу вимагає цілих чисел, тому виражається за допомогою функцій Mathlib замість функцій із Розділу 3.
Ремарка 3.3.16
Сумісність із Mathlib-івським Function.Surjective
Сумісність із Mathlib-івським Function.Bijective
Приклад 3.3.21 (використовуючи Mathlib)
Equations
Instances For
Equations
Instances For
Equations
Instances For
Ми не можемо використовувати позначення f⁻¹ для оберненої функції, оскільки в класі Inv Mathlib-у
обернена функція f повинна бути точно такого ж типу, як f, а Function Y X
має інший тип, ніж Function X Y.
Equations
Instances For
Вправа 3.3.2
Вправа 3.3.5. Наведіть або доведіть теореми чи контрприклади у випадку, якщо f замінено
на g або навпаки у висновку.
Вправа 3.3.8
Equations
- Chapter3.Function.inclusion h = Chapter3.Function.mk_fn fun (x : X.toSubtype) => ⟨↑x, ⋯⟩
Instances For
Equations
- Chapter3.Function.id X = Chapter3.Function.mk_fn fun (x : X.toSubtype) => x