Isso é muito profundo, na verdade. Estranho que a Wikipedia nunca a mencione.
O que você está procurando são provas muito concretas que podem, provavelmente, ser alcançadas com coisas como provas da Fitch . Então, estamos tentando deduzir coisas de nossos dados. Existem muitos construtores à prova de Fitch que fazem muito trabalho para você. Mas alguns exercícios não são apenas para prova.
Não sei se o usuário deve fazer os cálculos. Nesse caso, esteja ciente de coisas como 3SAT , que são problemas que podem ser desfeitos por tempo polinomial.
Quanto às estruturas de dados que você deseja usar, acho que você deseja ter algum tipo de Rule
classe. A regra pode ser qualquer coisa, dependendo do tipo. Não há muitas regras no lógica de predicados , portanto, isso pode ser superado pela herança (if, iff, e, or, not ...). Essas regras só precisam ser avaliadas. E a única coisa que uma regra pode fazer é retornar verdadeiro ou falso. Porque é isso que você faz com lógicas predicadas. Na universidade, fui recomendado a ler este livro por John Kelly .
Voltando às aulas: Você verá esses problemas como implementaria cálculos normais com matemática. O que é um +
operador? Ele contém dois parâmetros, que podem ser uma nova equação por si só ou apenas um número. Eu acho que você tem o mesmo com as regras. Eles podem ter novas regras como parâmetro ou apenas um booleano (o chamado predicado).
Espero que isso ajude muito, principalmente as referências. Se você quiser saber mais, ou se estou indo na direção errada, por favor me diga.