CoLF Logic Programming as Infinitary Proof Exploration
Chen, Pfenning
Logical Frameworks such as Automath [de Bruijn, 1968] or LF [Harper et al., 1993] were originally conceived as metalanguages for the specification of foundationally uncommitted deductive systems, yielding generic proof checkers. Their high level of abstraction was soon exploited to also express algorithms over deductive systems such as theorem provers, type-checkers, evaluators, compilers, proof transformers, etc. in the paradigm of computation-as-proof-construction. This has been realized in languages such as $λ$-Prolog [Miller et al., 1991] or Elf [Pfenning, 1991] based on backward chaining, and LolliMon [Lopez et al., 2005] or Celf [Schack-Nielsen and Schuermann, 2008], which integrated forward chaining. None of these early frameworks supported the direct expression of infinitary objects or proofs, which are available in the recently developed CoLF$^Ï$ [Chen, 2023]. In this work-in-progress report, we sketch an approach to computation-as-proof-construction over the first-order fragment of CoLF$^Ï$ (called CoLF$^Ï_1$ ) that already includes infinitary objects and proofs. A key idea is the interpretation of logic variables as communication channels and computation as concurrent message-passing. This is realized in a concrete compiler from CoLF$^Ï_1$ to Sax, a proof-theoretically inspired parallel programming language based on the proof-reduction in the semi-axiomatic sequent calculus [DeYoung et al., 2020].
academic
Логическое программирование CoLF как исследование бесконечных доказательств
В данной статье рассматривается реализация парадигмы "вычисления как построение доказательств" на фрагменте первого порядка CoLF^ω (CoLF^ω_1), который уже содержит бесконечные объекты и доказательства. Основная идея заключается в интерпретации логических переменных как каналов связи и интерпретации вычислений как параллельной передачи сообщений. Эта идея реализована через конкретный компилятор, который транслирует CoLF^ω_1 в Sax — язык параллельного программирования, вдохновленный теорией доказательств и основанный на редукции доказательств в полуаксиоматическом секвенциальном исчислении.
Ограничения традиционных логических фреймворков: Ранние логические фреймворки, такие как Automath и LF, хотя и успешно реализовали парадигму "вычисления как построение доказательств", не поддерживали прямое выражение бесконечных объектов или доказательств
Проблемы существующих реализаций: Поиск доказательств на основе возврата сталкивается с множественными трудностями в бесконечных условиях:
Проблемы завершаемости при бесконечных входных данных
Взаимодействие бесконечных объектов с возвратом (может никогда не завершиться явной ошибкой)
Алгоритмы унификации гарантируют завершаемость только на рациональных (циклических) термах, но многие объекты и доказательства в приложениях не являются рациональными
Поддержка бесконечных вычислений: Требуется динамическая семантика, которая может инкрементально вычислять выходные данные из входных данных, подобно преобразователям между потоками
Избежание возврата: Статическое обеспечение через проверку паттернов и уникальности того, что для каждого уникального входа существует максимум одно доказательство
Параллелизм: Использование коммуникации между общими переменными для реализации И-параллелизма между несколькими предпосылками
Предложен язык логического программирования CoLF^ω_1: Поддерживает доказательства с представлением бесконечных термов, построение доказательств без возврата, параллельное вычисление предпосылок с использованием общих логических переменных для коммуникации
Инновационная вычислительная модель: Интерпретация логических переменных как каналов связи и интерпретация вычислений как параллельной передачи сообщений
Реализованный компилятор: Конкретная реализация компилятора из CoLF^ω_1 в Sax
Богатый набор примеров систем: Включает реализацию обработки потоков, последовательности Фибоначчи, интегральных операций и других сложных отношений
В статье исследуется, как реализовать логическое программирование в логическом фреймворке, поддерживающем бесконечные объекты. Конкретная задача состоит в:
Входные данные: Спецификация программы CoLF^ω_1
Выходные данные: Бесконечные структуры (такие как потоки), вычисленные посредством параллельной передачи сообщений
Ограничения: Без возврата, поддержка параллельных вычислений, гарантия уникальности
Статическая проверка уникальности обеспечивает, что в каждой точке программы существует максимум одно возможное действие, устраняя необходимость в возврате, присущем традиционному логическому программированию.
mult_s : mult A B C -> add B C D -> mult (s A) B D.
В приведенном выше определении умножения две предпосылки mult A B C и add B C D могут вычисляться параллельно, взаимодействуя через общую переменную C.
Поддерживает ленивое вычисление, когда выходные данные D раскрываются пошагово, первые B шагов не требуют вычисления mult A B C, поскольку C остается неизменным.
omega : conat = s omega.
main : stream = repeat omega.
Результат:
(cons (s (s (s (s ...))))
(cons (s (s (s ...)))
(cons (s (s ...))
(cons (s ...)
(cons ...)))))
Недостаточная глубина теоретического анализа: Как отчет о прогрессе, в нем отсутствуют формализованные определения семантики и доказательства корректности
Отсутствие анализа производительности: Не предоставлены тесты производительности и анализ сложности
Ограниченная область применения: Текущая версия имеет ограниченный функционал, еще далеко до практического применения
Статья цитирует важные работы в области логических фреймворков, теории доказательств и параллельных вычислений, включая:
Систему Automath де Брейна
Фреймворк LF Харпера и др.
λ-Prolog Миллера и др.
Полуаксиоматическое секвенциальное исчисление ДеЙанга и др.
Общая оценка: Это инновационная статья в области теоретической информатики, которая впервые вводит поддержку бесконечных объектов в логический фреймворк и предлагает новую модель параллельных вычислений. Хотя как отчет о прогрессе она имеет место для улучшения в теоретической глубине, ее основные идеи и предварительная реализация открывают новое направление исследований в этой области.