Часткова формалізація в Lean книги Аналіз I

Файли в цьому каталозі містять формалізацію вибраних частин мого (пр.перекл. тут і далі це Терренс Тао) тексту Аналіз I у Lean. Формалізація має на меті максимально точно перефразувати оригінальний текст, а також продемонструвати особливості та синтаксис Lean. Зокрема, формалізація не оптимізована під ефективність, а в деяких випадках може відхилятися від ідіоматичного використання Lean.

Частини тексту, залишені як вправи для читача, у цьому перекладі передаються як тактика sorry. Читачі можуть створити форк репозиторію, щоб спробувати свої сили у виконанні цих вправ, але я не маю наміру розміщувати рішення безпосередньо в цьому репозиторії.

Хоча розташування визначень, теорем і доказів тут є близьким перефразуванням підручника, я утримуюся від прямого цитування матеріалу з підручника, натомість наводжу посилання на оригінальний текст, де це доречно. Таким чином, цю формалізацію слід розглядати як анотоване доповнення до основного тексту, а не як його заміну.

Значна частина матеріалу в цьому тексті продубльована у стандартній математичній бібліотеці Lean Mathlib, хоча й з дещо іншими визначеннями. Щоб усунути ці розбіжності, ця формалізація поступово переходитиме від визначень, наданих підручником, до визначень, наданих Mathlib, у міру просування в тексті, жертвуючи таким чином самодостатністю формалізації на користь сумісності з Mathlib. Наприклад, у розділі 2 розвивається теорія натуральних чисел незалежно від Mathlib, але в усіх наступних розділах замість неї використовуватимуть натуральні числа Mathlib. (Епілог до розділу 2 надається, щоб показати, що два поняття натуральних чисел ізоморфні.) Таким чином, цю формалізація також може бути використана як вступ до різних частин Mathlib.

Для узгодження формалізації з домовленостями Mathlib, до деяких визначень було внесено невелику кількість технічних змін порівняно з версією підручника. Найбільш помітні:

  • Послідовності індексуються з нуля, а не з одиниці, оскільки Mathlib має набагато більше підтримки для натуральних чисел з нульовою нумерацією, ніж для натуральних чисел з одиничною нумерацією.

  • Багатьом операціям, які залишилися невизначеними в тексті, таким як ділення на нуль або отримання формальної границі не-Коші послідовності, замість цього присвоюється "сміттєве" значення (наприклад, 0), щоб зробити операцію повністю визначеною. Це пояснюється тим, що Lean має кращу підтримку повних функцій (пр.перекл. total functions), ніж часткових функцій (пр.перекл. partial functions) (нерозбірливе використання останніх може призвести до "пекла залежних типів", в якому навіть дуже прості маніпуляції вимагають досить тонких і делікатних доказів). Дивіться, наприклад, цю публікацію в блозі Кевіна Баззарда для отримання додаткової інформації.

Поточні формалізовані розділи: