Après avoir plus réfléchi, je pense que c’est "facile" (mais c’est dur de se convaincre que c’est facile !), et que comme ton intuition le dit une approche purement syntactique marche. Par contre, c’est nettement plus clair en utilisant le calcul des séquents que la déduction naturelle – et comme les deux sont logiquement équivalents, il n’y a pas de raison de ne pas.
Dans toutes les logiques raisonnables, séquents pour la logique classique compris, tu peux prouver l’élimination des coupures. Pour montrer qu’une forme n’est pas prouvable revient alors à montrer qu’il n’existe pas de preuve sans coupure, et ça c’est plus facile car elles sont plus petites (en particulier, sous-formule et tout, il y en a un nombre fini).
Ce qui est encore mieux qu’énumérer toutes les preuves, c’est de regarder leur structure pour réduire l’espace de recherche : c’est ce que fait le focusing. En logique classique (slides sur LKF, la présentation standard des séquents classiques avec focusing), c’est particulièrement peu prise de tête parce que tu peux traiter tous les connecteurs de la logique comme inversibles; ça donne des preuves grosses mais extrêmement automatiques et avec peu de backtracking.
Par exemple si tu veux prouver P /\ not(P)
(ou voir qu’il n’est pas prouvable), on part de
on peut, sans perte de généralité, dire qu’une preuve sans coupure commence par une introduction du connecteur ∧ :
| ? ?
——— ————
⊢ P ⊢ ¬P
——————————
⊢ P ∧ ¬P
|
et là on peut encore faire une étape de raisonnement inversible dans la branche droite, mais après on est bloqué :
| ?
————
? P ⊢
——— ————
⊢ P ⊢ ¬P
——————————
⊢ P ∧ ¬P
|
Il n’existe pas de preuve de (P ⊢) ou (⊢ P) quand P est un
atome. Comme les étapes que j’ai faites sont
inversibles (elles préservent la prouvabilité), s’il n’existe pas
de preuve qui les utilise alors il n’existe pas de preuve du
tout. Par complétude du calcul des séquents, cela veut dire que
la formule n’est pas prouvable.
Je pense que quelqu’un qui s’y connaîtrait mieux que moi en
méthodes sémantiques pourrait pointer du doigt le fait que la
recherche de preuve de cette forme correspond à la construction
d’un contre-modèle, ou un truc comme ça.
Un dernier point de rappel sur "prouvabilité" et "satisfiabilité"
que j’ai besoin de me répéter à chaque fois que je lis un truc
fait par des classicistes :
- "P satisfiable" ça veut dire que si on déclare proprement les
variables X₁,..,Xₙ utilisées dans P, on parle de la formule
∃X₁,…,∃Xₙ, P
- "P prouvable" ça veut dire ∀X₁,..,∀Xₙ, P
C’est pour ça que les gens disent qu’une formule est satisfiable
quand sa négation n’est pas prouvable, ou l’inverse : c’est les
lois de commutation de la négation et de ∃/∀.