Аналіз I, Розділ 3.6: Кардинальність множин #
Я (пр.перекл. Терренс Тао) намагався зробити переклад якомога точнішим перефразуванням оригінального тексту. Коли є вибір між більш ідіоматичним рішенням Lean та більш точним перекладом, я зазвичай обирав останній. Зокрема, будуть місця, де код Lean можна було б "підбуцнути", щоб зробити його більш елегантним та ідіоматичним, але я свідомо уникав цього вибору.
Основні конструкції та результати цього розділу:
- Потужність множини
- Скінченні та нескінченні множини
- Зв'язки з Mathlib-івськіми еквівалентами
Після цього розділу ці нотації будуть вважатися застарілими на користь їхніх еквівалентів із Mathlib.
Підказки від попередніх користувачів #
Користувачі супровідного матеріалу, які виконали вправи в цьому розділі, можуть надсилати свої поради майбутнім користувачам цього розділу як PRи.
- (Додайте підказку тут)
Визначення 3.6.1 (Рівна потужність)
Equations
- X.EqualCard Y = ∃ (f : X.toSubtype → Y.toSubtype), Function.Bijective f
Instances For
Твердження 3.6.4 / Вправа 3.6.1
Equations
- Chapter3.SetTheory.Set.EqualCard.inst_setoid = { r := Chapter3.SetTheory.Set.EqualCard, iseqv := ⋯ }
Визначення 3.6.5
Equations
- X.has_card n = (X ≈ Chapter3.SetTheory.Set.Fin n)
Instances For
Для цілей Lean зручно надавати нескінченним множинам сміттєву потужність як нуль.
Equations
- X.card = if h : X.finite then Exists.choose h else 0
Instances For
Equations
Instances For
Вправа 3.6.8
Вправа 3.6.12
Equations
- One or more equations did not get rendered due to their size.
Instances For
Вправа 3.6.12 (i), перша частина
Equations
Instances For
Будь-який Fin n можна перетворити на Fin (n + 1). Порівняйте з Mathlib Fin.castSucc.
Equations
Instances For
Будь-який Fin (n + 1), крім n, можна перетворити на Fin n. Порівняйте з Mathlib Fin.castPred.
Equations
Instances For
Зараз хороший час, щоб довести цей результат, який буде корисним для виконання вправи 3.6.12 (i).
Якщо деякий x : Fin (n+1) ніколи не дорівнює i, ми можемо зменшити його до Fin n, зсунувши всі x > i на один вниз.
Порівняйте з Mathlib Fin.predAbove.
Equations
- Chapter3.SetTheory.Set.Fin.predAbove i x h = if hx : ↑x < ↑i then Chapter3.SetTheory.Set.Fin_mk n ↑x ⋯ else Chapter3.SetTheory.Set.Fin_mk n (↑x - 1) ⋯
Instances For
Ми можемо розширити x : Fin n до Fin (n + 1}, зсуваючи всі x ≥ i на один вверх. Результат ніколи не дорівнює i,
тому він утворює обернений процес до зменшення, виконаного predAbove.
Порівняйте з Mathlib Fin.succAbove.
Equations
- Chapter3.SetTheory.Set.Fin.succAbove i x = if ↑x < ↑i then Chapter3.SetTheory.Set.Fin_embed n (n + 1) ⋯ x else Chapter3.SetTheory.Set.Fin_mk (n + 1) (↑x + 1) ⋯
Instances For
Вправа 3.6.12 (i), друга частина
Вправа 3.6.12 (ii)