стандартные аксиомы L
…которые, кстати, всё-таки бывают разными в зависимости от учебника. Например, одни авторы стремятся к минимализму и делают формулы со связками

сокращениями формул со связками только

, другие желают, чтобы (производные) правила введения и удаления связок получались из аксиом в пару шагов, и потому аксиом много и т. п.. Это может в частности немного менять, насколько простым может быть алгоритм.
Вообще же можно сделать довольно грубо, но действенно. Пусть в формулу

входят переменные

. Сначала выводим

, этот вывод будет использоваться как клей, которым алгоритм будет склеивать

выводов формул
![$[\neg]A_1\to\ldots\to[\neg]A_n\to F$ $[\neg]A_1\to\ldots\to[\neg]A_n\to F$](https://dxdy-02.korotkov.co.uk/f/5/6/f/56f7d4d3e27d0e1b7037ac6e4827b13882.png)
(по всем вариантам расстановки

). Сами эти выводы можно получить, используя теорему о дедукции и всевозможные «правила таблицы истинности»
![$[\neg]A, [\neg]B\vdash [\neg]A*B$ $[\neg]A, [\neg]B\vdash [\neg]A*B$](https://dxdy-01.korotkov.co.uk/f/c/8/3/c836fd98cf6ea01d9bb669b863312f9682.png)
, где

— разные двухместные связки (для отрицания не понадобится), собирая с помощью них формулу из каждого набора гипотез
![$[\neg]A_1,\ldots,[\neg]A_n$ $[\neg]A_1,\ldots,[\neg]A_n$](https://dxdy-04.korotkov.co.uk/f/f/e/6/fe6e88b2733104704e191e825ed1977582.png)
. Тут можно найти оптимизации, но чем проще алгоритм, тем ведь быстрее его корректная реализация?
Схема выше хороша ещё и тем, что она как раз не зависит от конкретного вида набора связок и аксиом — от него зависит то, какие выводы породит теорема о дедукции и какие выводы мы сделаем для «правил таблицы истинности» и

, а вот сборка будет одна и та же. Ещё этот алгоритм не сработает для не-теоремы (потому что в построении одного из выводов соберётся не

, а

), но никогда не построит последовательность формул, не являющуюся выводом (ну, если понят и реализован правильно).