What Monads Can and Cannot Do with a Few Extra Pages
Møgelberg, Zwart
The delay monad provides a way to introduce general recursion in type theory. To write programs that use a wide range of computational effects directly in type theory, we need to combine the delay monad with the monads of these effects. Here we present a first systematic study of such combinations.
We study both the coinductive delay monad and its guarded recursive cousin, giving concrete examples of combining these with well-known computational effects. We also provide general theorems stating which algebraic effects distribute over the delay monad, and which do not. Lastly, we salvage some of the impossible cases by considering distributive laws up to weak bisimilarity.
academic
Что монады могут и не могут делать с несколькими дополнительными страницами
Монада задержки (delay monad) предоставляет способ введения общей рекурсии в теорию типов. Для прямого написания программ, использующих широкий спектр вычислительных эффектов в теории типов, необходимо комбинировать монаду задержки с монадами этих эффектов. В данной статье впервые систематически исследуется такая комбинация. Авторы изучают коиндуктивную монаду задержки и её охраняемый рекурсивный вариант, предоставляя конкретные примеры комбинирования этих монад с известными вычислительными эффектами. Кроме того, предоставляются общие теоремы, указывающие, какие алгебраические эффекты распределяются над монадой задержки, а какие нет. Наконец, некоторые невозможные случаи спасаются путём рассмотрения законов распределения при слабой бисимуляции.
Проблема, которую необходимо решить: Теория типов Мартина-Лёфа требует завершения всех программ для сохранения корректности логической интерпретации, однако практическое программирование требует общей рекурсии. Монада задержки решает эту проблему путём инкапсуляции рекурсии, но отсутствует теория комбинирования монады задержки с другими вычислительными эффектами.
Важность проблемы: Современные функциональные языки программирования должны обрабатывать множество вычислительных эффектов (исключения, состояние, недетерминизм и т.д.). Прямое программирование и рассуждение об этих эффектах в теории типов требует математической теории, описывающей взаимодействие монады задержки с другими монадами.
Ограничения существующих подходов:
Отсутствует систематическое исследование комбинирования монады задержки с другими монадами
Соответствующие результаты из теории областей слишком сложны для применения в контексте теории типов
Известно, что некоторые комбинации (например, с конечной монадой степени множества) невозможны, но отсутствует общая теория
Исследовательская мотивация: Установить полную математическую теорию комбинирования монады задержки с другими вычислительными эффектами, обеспечивая теоретическую основу для продвинутого функционального программирования в теории типов.
Систематическая исследовательская база: Первое систематическое исследование комбинирования монады задержки с другими монадами, охватывающее как коиндуктивный, так и охраняемый рекурсивный варианты.
Доказательство того, что последовательное распределение работает для алгебраических монад с уравнениями баланса
Доказательство того, что монады с коммутативными идемпотентными операциями не имеют законов распределения
Установление соответствия между типами уравнений и существованием законов распределения
Теория слабой бисимуляции: Доказательство того, что в смысле слабой бисимуляции можно построить законы распределения для алгебраических монад без уравнений отбрасывания путём работы в категории множеств.
Формальная верификация: Частичная формализация результатов на языке Agda, обеспечивающая проверяемые реализации.
Исследование существования закона распределения TD → DT, где T — произвольная монада, D — монада задержки. Закон распределения распределяет операции T над вычислительными шагами, позволяя композиции DT иметь структуру монады.
Кодирование охраняемой рекурсии: Использование многочасовой охраняемой рекурсии для кодирования коиндуктивных типов как ∀κ.D^κX, избегая требований непрерывности.
Эквивалентность законов распределения: Установление биекции между законами распределения и поднятиями монад в категории Eilenberg-Moore (Theorem 2.12).
Анализ, управляемый уравнениями: Прогнозирование существования законов распределения через типы уравнений алгебраической теории, обеспечивая систематическую аналитическую базу.
Категория слабой бисимуляции: Работа в категории множеств для обработки факторструктур, преодолевая технические трудности прямого факторирования монады задержки.
Данная работа цитирует 69 важных источников, охватывающих классические работы в области теории типов, теории категорий, вычислительных эффектов, в частности теорию законов распределения Beck (1969), монаду задержки Capretta (2005) и охраняемую рекурсию Nakano (2000).