Аналіз I, Глава 3.3 #
Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
- Поняття функції
Function X Y
між двома множинамиX
,Y
в теорії множин із глави 3.1 - Різні співвідношення з поняттям функції
X → Y
у Mathlib між двома типамиX
,Y
. (Примітка із глави 3.1, що кожнаSet
X
також може бути розглянути як підтип{ 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