Nous savons par le théorème de Church que la détermination de la satisfiabilité du premier ordre est indécidable en général, mais il existe plusieurs techniques que nous pouvons utiliser pour déterminer la satisfiabilité du premier ordre. Le plus évident est de rechercher un modèle fini. Cependant, il existe un certain nombre d'énoncés dans la logique du premier ordre dont nous pouvons démontrer qu'ils n'ont pas de modèles finis. Par exemple, tout domaine dans lequel opère une fonction injective et non surjective est infini.
Comment pouvons-nous démontrer la satisfiabilité pour les énoncés de premier ordre où il n'y a pas de modèles finis ou où l'existence de modèles finis est inconnue? Dans la démonstration automatisée de théorèmes, nous pouvons déterminer la satisfiabilité de plusieurs façons:
- Nous pouvons annuler la phrase et rechercher une contradiction. Si l'on en trouve, nous prouvons la validité de premier ordre de l'énoncé et donc la satisfiabilité.
- Nous utilisons la saturation avec résolution et nous manquons d'inférences. Plus souvent qu'autrement, nous aurons une quantité infinie d'inférences à faire, donc ce n'est pas fiable.
- Nous pouvons utiliser le forçage, qui suppose l'existence d'un modèle et également la cohérence de la théorie.
Je ne connais personne implémentant le forçage comme technique mécanisée pour la démonstration automatisée de théorèmes, et cela ne semble pas facile, mais je suis intéressé si cela a été fait ou tenté, car il a été utilisé pour prouver l'indépendance pour un certain nombre de déclarations dans la théorie des ensembles, qui elle-même n'a pas de modèles finis.
Existe-t-il d'autres techniques connues pour rechercher la satisfiabilité du premier ordre applicables au raisonnement automatisé ou quelqu'un a-t-il travaillé sur un algorithme de forçage automatisé?