Logic for Programmers
Эта книга учит программистов применять формальную логику для улучшения кода, тестов и проектирования систем. Начиная с основ предикатов, множеств и кванторов, автор показывает, как рефакторить условные конструкции, писать более сильные тесты (включая property-based testing), доказывать корректность кода с помощью контрактов и инвариантов, и использовать таблицы решений для анализа требований.
Отдельные главы посвящены логическому моделированию баз данных (реляционная модель, ограничения), формальной спецификации систем на TLA+, применению SAT/SMT-солверов для поиска ошибок и логическому программированию на Prolog. Книга содержит множество практических примеров и упражнений, а также обсуждение ограничений формальных методов (парадокс Рассела, высшие порядки логики).
Это не учебник по математической логике, а практическое руководство для разработчиков, которые хотят сделать свой код надёжнее, а процесс разработки — более предсказуемым. Материал подан доступно, с акцентом на интуицию и реальные сценарии использования.










