tgoop.com/covalue/72
Last Update:
Продолжая исследования классических алгоритмов для работы с логиками, портировал пропозициональную интерполяцию с Isabelle на SSReflect: https://github.com/clayrat/resolution-ssr/blob/main/theories/craig_interp.v
Свойство интерполяции было введено Уильямом Крэгом в 1957 году - логическая система обладает им, если для любых двух формул A
и B
, таких что валидность второй вытекает из валидности первой, можно найти “промежуточную” формулу I
, чья валидность вытекает из валидности A
и влечет валидность B
; при этом все переменные в ней встречаются в обоих исходных формулах (т.е. в качестве I
нельзя в общем случае просто взять A
или B
). Свойство это в дальнейшем было показано для многих логик - пропозициональной, первого порядка, ряда модальных, многосортных и т.д, зачастую конструктивными методами, что и позволяет реализовать процедуру нахождения I
в виде алгоритма. Позже также получили ряд результатов для сложности процедуры интерполяции, в частности связь с проблемой P=NP. В 2000х МакМиллан предложил использовать интерполяцию для быстрого приблизительного вывода инвариантов в модел-чекерах, основанных на SAT-солвинге. Подробнее см. слайды D’Silva, [2016] “Interpolation: Theory and Applications”.
BY Covalue
Share with your friend now:
tgoop.com/covalue/72