Я аспирант по математике с твердым опытом в логике. Я прошел годичный курс для выпускников по логике вместе с курсами для выпускников по теории конечных моделей и другим курсам по принуждению и теории множеств. Большинство текстов CS, кажется, предполагают только очень скромный фон в логике, который в основном охватывает основы логики высказываний и логики первого порядка.
Я хотел бы получить некоторые подсказки о том, куда идти для приложений CS, где используется более тяжелый материал из логики. Одним из моих интересов будет теория типов и формальные методы в целом. Кто-нибудь может предложить несколько хороших чтений после вводных книг по проверке моделей и языкам программирования?
Ответы:
Я кратко рассмотрел некоторые области здесь, пытаясь сосредоточиться на идеях, которые понравятся кому-то, имеющему опыт работы в продвинутой математической логике.
Теория конечных моделей
Самым простым ограничением классической теории моделей с точки зрения информатики является изучение структур над конечной вселенной. Эти структуры встречаются в форме реляционных баз данных, графов и других комбинаторных объектов, возникающих повсюду в компьютерной науке. Первое наблюдение состоит в том, что некоторые фундаментальные теоремы теории моделей первого порядка терпят неудачу, когда ограничиваются конечными моделями. К ним относятся теорема компактности, теорема полноты Годеля и ультрапроизведенные конструкции. Трахтенброт показал, что в отличие от классической логики первого порядка выполнимость над конечными моделями неразрешима.
Основными инструментами в этой области являются местность Ханф, местность Гайфмана и многочисленные вариации игр Эренфойхта-Фрейсса. Изучаемые темы включают бесконечную логику, логику со счетом, логику с фиксированной точкой и т. Д., Всегда с упором на конечные модели. Существует работа, сфокусированная на выразительности во фрагментах с конечными переменными логики первого порядка, и эти логики имеют характеристики в играх с галькой. Другое направление исследований - выявить свойства классических логик, которые выдерживают ограничение на конечные модели. Недавний результат Россмана в этом направлении показывает, что некоторые теоремы о сохранении гомоморфизма все еще сохраняются над конечными моделями.
Линейная временная логика
Линейная временная логика была перенята из философской логики в информатику для рассуждений о поведении компьютерных программ. Это считалось хорошей логикой, поскольку оно могло выражать такие свойства, как неизменность (отсутствие ошибок) и завершение. Теория доказательств временной логики была развита Манной и Пнуэли (и другими позже) в их статьях и книгах. Проверка модели и проблема выполнимости для LTL могут быть решены в терминах автоматов над бесконечными словами.
Pnueli также доказал фундаментальные результаты о LTL в своей оригинальной статье, вводя логику рассуждений о программах. Варди и Вулпер дали гораздо более простую компиляцию формул LTL в автоматы Бучи. Связь с временной логикой привела к интенсивному изучению алгоритмов для эффективного извлечения автоматов из LTL, а также для определения и дополнения автоматов Бучи. Теорема Кэмпа показывает, что LTL с тех пор и доω μ μ
Логика вычислительного дерева
Задача проверки модели для CTL над конечными структурами находится за полиномиальное время. Задача проверки модели для CTL * завершена. Аксиоматизация CTL * была сложной открытой проблемой, которая была окончательно решена Рейнольдсом 2001. Аналог теоремы ван Бентема для модальной логики и теоремы Кэмпа для LTL дан для CTL * по теореме Хефера и Томаса, показывающей, что CTL * соответствует фрагмент монадической логики второго порядка над двоичными деревьями. Более поздняя характеристика Хиршфельдом и Рабиновичем заключается в том, что CTL * явно эквивалентен бизимуляционно-инвариантному фрагменту MSO с количественным определением пути.
Языки бесконечных слов
Связь с LTL и необходимость моделирования бесконечного поведения привели к интенсивному изучениюω
Автоматы на бесконечные слова
Там, где есть языки, у программистов будут автоматы. Введите теорию автоматов над бесконечными словами и бесконечными деревьями. Крайне печально, что хотя автоматы с бесконечными словами появились в течение двух лет после автоматов с конечными словами, эта фундаментальная тема редко рассматривается в стандартных учебных программах по информатике. Автоматы над бесконечными словами и деревьями обеспечивают очень надежный подход, чтобы доказать разрешимость выполнимости для очень богатого семейства логик.
Бесконечные игры
Логические и бесконечные игры являются активной областью исследований. Теоретико-игровые представления проявляются в компьютерных науках повсеместно в двойственности между недетерминизмом и параллелизмом (чередованием), программой и ее средой, универсальным и экзистенциальным количественным определением, модальностями коробок и бриллиантов и т. Д. Игры оказались Отличный способ изучения свойств различных типов неклассических логик, перечисленных выше.
Как и в случае с критериями приемлемости автоматов, у нас разные условия выигрыша для игр, и многие из них могут быть эквивалентны. Поскольку вы спрашивали о классических результатах, теорема детерминированности Бореля и игры Гейла-Стюарта часто незаметно лежат в основе нескольких игровых моделей, которые мы изучаем. Одним из актуальных вопросов нашего времени был вопрос о сложности решения паритетных игр. Юрдзински дал алгоритм улучшения стратегии и показал, что определение победителя находится на пересечении классов сложности UP и coUP. Точная сложность алгоритма Юрдзинского была открыта до тех пор, пока Фридман не дал ему нижнюю границу экспоненциального времени в 2009 году.
источник
Эдмунд М. Кларк, Орна Грумберг, Дорон А. Пелед: Проверка модели . MIT Press 1999, хорошая книга (для меня) по проверке моделей.
Глинн Винскель: Формальная семантика языков программирования: введение . MIT Press 1994, является одним из стандартных учебников по языкам программирования.
Мордехай Бен-Ари: Математическая логика для информатики . Springer 2001, возможно, то, что вы ищете.
источник
Теория баз данных - это обширное поле, обеспечивающее множество применений логики. Описательная сложность и теория конечных моделей - тесно связанные области. Насколько я могу судить, все эти области имеют тенденцию использовать алгебраические стили логики (следуя по стопам Биркгофа и Тарского), а не теорию доказательств. Тем не менее, некоторые работы Питера Бунемана , Леонида Либкина , Вэньфея Фана , Сьюзен Дэвидсон , Лимсуна Вонга , Ацуши Охори и других исследователей, которые работали в UPenn в 1980-х-90-х годах, действительно стремились объединить теорию языка программирования и базы данных. Кажется, для этого нужно быть уверенным в обоих стилях логики. То же самое касается более поздней работы Джеймса Чейни.иФилип Уодлер .
Что касается конкретных ссылок, стандартный учебник доступен онлайн для удобной ссылки:
К сожалению, я не знаю каких-либо современных общих учебников или обзоров, посвященных этой быстро меняющейся области. Я нашел два старых опроса полезными. Первый,
показывает, как соединить точки между Tarski и определенным подполем, базами данных ограничений. Во-вторых,
выдвигает теорию баз данных (в стиле 1996 года) на теоретиков конечных моделей и в процессе выдвигает на первый план много интересных приложений логики в базах данных. Для более поздних работ (таких как теория XML, провенанс, потоковые модели или графовые базы данных) чтение цитируемых исследовательских работ является разумным подходом.
источник
Майкл Хут и Марк Райан: логика в информатике , издательство Кембриджского университета, 2004.
Я рекомендую эту книгу как общее введение о том, как логика играет роль в информатике.
источник
Ключевое использование логики в CS - логика программы, также называемая логикой Хоара.
Аналогичная ситуация возникает при изучении модальных логик, которые (еще немного упрощая) не столь выразительны, как логика первого порядка, но то, что они могут выразить, они выражают с помощью более коротких формул и доказательств.
Идентификация подходящих фрагментов ZFC не сложна для простых языков программирования, но становится все более сложной, так как языки программирования приобретают больше функций. За последние пару лет в этом деле достигнут существенный прогресс.
В работе Т. Хоара « Аксиоматическая основа компьютерного программирования » часто рассматривается как основательная основа для изучения логики программы, она проста для чтения и, вероятно, является хорошим способом начать рискованное дело. Эта же логика более подробно изучена в книге Винскеля «Формальная семантика языков программирования», упоминаемой @vb le.
Теорию типов можно увидеть в аналогичном свете. Ключевой момент продажи теории типов - идентификация доказательств с помощью (чисто функциональных) программ, что приводит к большой экономии концепций и мощной автоматизации (в форме вывода типов и интерактивных доказательств теорем). Цена за то, что теория типов является элегантным способом организации доказательств, состоит в том, что она, кажется, не очень хорошо работает с языками программирования, которые не являются чисто функциональными.
Недавний и современный текст, который вводит программную логику с теоретико-типовым оттенком, - Software Foundations от Pierce et al. Это приведет вас прямо к (а) передовым исследованиям в области верификации программ и, как учебник, вероятно, даст представление о том, как будут преподаваться информатика и математика в будущем.
Как только логика программы была разработана для языка, следующим шагом является автоматизация или частичная автоматизация: создание доказательств для нетривиальных программ является трудоемким, и мы бы хотели, чтобы машины делали это как можно больше. Многие современные исследования в области формальных методов связаны с такой автоматизацией.
источник
Существует очень сильная традиция логики в информатике. Проблемы, которые мы изучаем, и эстетика сообщества вычислительной логики не идентичны проблематике сообщества математической логики. Вы абсолютно правы в том, что значительные разработки в теории моделей, мета-теории логики первого порядка и теории множеств не часто используются в вычислительной логике. Можно успешно исследовать вычислительные логики, не видя и не используя ультрафильтры, нестандартный анализ, форсирование, теорему Парижа-Харрингтона и множество других интересных концепций, которые считаются важными в классической логике.
Подобно тому, как мы применяем математические идеи для изучения логики, а также логические идеи для изучения математики, мы применяем логику для изучения информатики, а также применяем вычислительные перспективы для изучения логики. Это различное внимание имеет довольно драматические последствия для типов результатов, которые важны для нас.
Вот цитата Джона Баеза о логике и информатике. Я не придерживаюсь абсолютно той же точки зрения, потому что я не очень знаком с продвинутой математической логикой.
Логика в информатике - обширная и быстро развивающаяся область. Я считаю, что каждая перспектива классической логики может быть изменена, чтобы получить некоторую перспективу вычислительной логики. Запись в Википедии по математической логике разбивает область на теорию множеств, теорию моделей, теорию доказательств и теорию рекурсии. Вы можете по существу взять эти области и добавить к ним вычислительную природу и получить подполе вычислительной логики.
Теория моделей Нам нравится изучать теорию моделей неклассических логик и неклассических моделей классической логики. Под этим я подразумеваю, что мы изучаем модальные, временные и субструктурные логики и что мы изучаем логики над деревьями, словами и конечными моделями, в отличие от классических моделей, таких как алгебры. Две фундаментальные проблемы - выполнимость и проверка модели. Оба имеют огромное практическое и теоретическое значение. Напротив, эти проблемы менее важны в классической логике.
Теория доказательств Мы изучаем сложность и эффективность, с которой мы можем генерировать доказательства в классических системах доказательств, а также разрабатываем новые, неклассические системы доказательств, которые чувствительны к соображениям сложности и эффективности. Автоматическая дедукция изучает машинно-поддерживаемое доказательство генерации, в широком смысле. Процесс может включать взаимодействие с человеком или быть полностью автоматическим. Существует много работы по разработке процедур принятия решений для логических теорий. Сложность доказательства сосредоточена на размере доказательств и вычислительной сложности генерации доказательств. Существует увлекательное направление работы, связывающее программы с доказательствами, которое сочетается с работой, переходящей от линейной логики к разработке систем доказательств и, следовательно, языков программирования, которые чувствительны к ресурсам.
Теория рекурсии Наша теория рекурсии - это теория сложности. Вместо изучения того, что вычислимо, мы изучаем, насколько эффективно мы можем вычислять. Есть много аналогов теории рекурсии в теории сложности, но результаты и разделения теории рекурсии не всегда верны для своих теоретических аналогов сложности. Вместо вычислимых множеств и арифметической иерархии мы имеем полиномиальное время, полиномиальную иерархию времени и полиномиальное пространство, охватывающее иерархию. Вместо ограниченного количественного определения в арифметической иерархии мы имеем выполнимость и количественные булевы формулы и ограниченное количественное выражение булевых формул.
Обзорная статья
является хорошей отправной точкой для получения высокоуровневого представления о вычислительной логике. Я собираюсь перечислить несколько, логически ориентированных областей компьютерной науки. Я надеюсь, что другие отредактируют этот ответ и добавят его в этот список, и, возможно, добавят ссылку на ответ на этой странице.
источник
область сильного совпадения между логикой и информатикой - автоматическое доказательство теорем , например [4]. также, например, ссылка [1] - это использование средства доказательства теорем Бойера-Мура для проверки / проверки теоремы Годельса. другой недавний крупный / впечатляющий результат - недавнее завершение программной проверки теоремы о четырех цветах (и других, таких как Odd Order и Feit-Thompson [3]) в исследовании Microsoft Gonthier [2].
[1] Метаматематика, машины и доказательство Гёделя (Кембриджские трактаты в теоретической информатике Шанкара
[2] Проверенное компьютером доказательство теоремы о четырех цветах Жоржа Гонтье
[3] Интересные алгоритмы в формализации теоремы Фейт-Томпсона? tcs.se
[4] Где и как компьютеры помогли доказать теорему? tcs.se
источник