La motivation que vous exprimez pour faire face à l'indécidabilité s'applique également aux problèmes décidables mais difficiles. Si vous avez un problème qui est NP-difficile ou PSPACE-dur, nous devrons généralement utiliser une certaine forme d'approximation (au sens large du terme) pour trouver une solution.
Il est utile de distinguer entre différentes notions d'approximation.
( ε , δ)
Voici un exemple d'une notion différente d'approximation. Supposons que vous effectuiez un calcul comme la multiplication de deux grands nombres et que vous vouliez vérifier si la multiplication était correcte. Il existe de nombreuses techniques heuristiques qui sont utilisées dans la pratique pour vérifier l'exactitude sans répéter le calcul. Vous pouvez vérifier que les signes ont été multipliés pour obtenir le bon signe. Vous pouvez vérifier si les nombres ont la bonne parité (propriétés de nombre pair / impair). Vous pouvez utiliser un chèque plus sophistiqué comme Casting out nines. Toutes ces techniques ont une propriété commune qu'elles peuvent vous dire si vous avez fait une erreur, mais elles ne peuvent garantir si vous avez obtenu la bonne réponse. Cette propriété peut être considérée comme une approximation logique, car vous pourrez peut-être prouver que le calcul d'origine est incorrect, mais vous ne pourrez peut-être pas prouver qu'il est correct.
Toutes les vérifications que j'ai mentionnées ci-dessus sont des exemples d'une technique appelée interprétation abstraite. L'interprétation abstraite rend complètement rigoureuse une notion d'approximation logique distincte des approximations numériques et probabilistes. Le problème que j'ai décrit avec l'analyse d'un seul calcul s'étend au cas plus complexe de l'analyse d'un programme. La littérature sur l'interprétation abstraite a développé des techniques et des cadres pour un raisonnement logique approximatif sur les programmes, et plus récemment sur les logiques. Les références suivantes peuvent être utiles.
- Interprétation abstraite en bref par Patrick Cousot, qui est un simple aperçu.
- Présentation de l'abstraction par Patrick Cousot, dans le cadre de son cours. Il existe un très bel exemple d'abstraction pour déterminer les propriétés d'un boquet de fleurs. L'analogie du bouquet comprend des points fixes et peut être rendue complètement mathématiquement précise.
- Cours d'interprétation abstraite par Patrick Cousot, si vous voulez toute la profondeur et les détails.
- Interprétation abstraite et application aux programmes logiques , Patrick Cousot et Radhia Cousot, 1992. S'applique aux programmes logiques, selon votre demande. La section initiale formalise également la procédure de rejet des neuf en tant qu'interprétation abstraite.
Tout cela a généralement été appliqué à la raison des programmes informatiques. Il y a eu des travaux assez récents sur l'application des idées de l'interprétation abstraite à l'étude des procédures de décision pour les logiques. L'accent n'a pas été mis sur la logique modale mais sur la satisfiabilité dans la logique propositionnelle et les théories du premier ordre sans quantificateur. (Depuis que j'ai travaillé dans cet espace, un papier ci-dessous est le mien)
- Une généralisation de la méthode de Staalmarck par Aditya Thakur et Thomas Reps, 2012. Donne une généralisation de la méthode de Staalmarck aux problèmes d'analyse de programme.
- Le produit réduit des domaines abstraits et la combinaison de procédures de décision , Patrick Cousot, Radhia Cousot et Laurent Mauborgne, 2011. Cet article étudie la technique Nelson-Oppen pour combiner des procédures de décision et montre qu'elle peut également être utilisée pour des combinaisons incomplètes, ce qui est particulièrement intéressant si vous avez des problèmes indécidables.
- Les solveurs de satisfaction sont des analyseurs statiques , mon article avec Leopold Haller et Daniel Kroening, 2012. Applique la vue d'approximation basée sur le réseau pour caractériser les solveurs existants. Vous pouvez également consulter mes diapositives sur le sujet .
Maintenant, aucun des articles ci-dessus ne répond à votre question spécifique sur l'attaque des problèmes de satisfiabilité qui sont indécidables. Ce que ces articles font, c'est adopter une vision orientée vers l'approximation des problèmes logiques qui n'est pas numérique ou probabiliste. Ce point de vue a été largement appliqué pour raisonner sur les programmes et je pense qu'il répond exactement à ce que vous demandez.
Pour l'appliquer à la logique modale, je suggère qu'un point de départ est d'utiliser la sémantique algébrique de Jonsson et Tarski ou la sémantique ultérieure de Lemmon et Scott. En effet, l'interprétation abstraite est formulée en termes de réseaux et de fonctions monotones, donc les algèbres booléennes avec opérateurs sont une sémantique pratique à utiliser. Si vous voulez commencer avec les images de Kripke, vous pouvez appliquer le théorème de dualité de Jonsson et Tarski (que certains peuvent appeler la dualité de Stone) et dériver la représentation algébrique. Par la suite, vous pouvez appliquer les théorèmes de l'interprétation abstraite pour l'approximation logique.