AccueilđŸ‡«đŸ‡·Chercher

Satisfiability modulo theories

En informatique et en logique mathĂ©matique, un problĂšme de satisfiabilitĂ© modulo des thĂ©ories[1] (SMT) est un problĂšme de dĂ©cision pour des formules de logique du premier ordre avec Ă©galitĂ© (sans quantificateurs), combinĂ©es Ă  des thĂ©ories dans lesquelles sont exprimĂ©es certains symboles de prĂ©dicat et/ou certaines fonctions. Des exemples de thĂ©ories incluent la thĂ©orie des nombres rĂ©els, la thĂ©orie de l’arithmĂ©tique linĂ©aire, des thĂ©ories de diverses structures de donnĂ©es comme les listes, les tableaux ou les tableaux de bits, ainsi que des combinaisons de celles-ci.

Instance d'un problĂšme SMT

Formellement, une instance de SMT est une formule du premier ordre sans quantificateur. Par exemple :

Le problÚme SMT est de déterminer si une telle formule est satisfiable par rapport à une théorie sous-jacente. Par exemple, on peut se demander si la formule ci-dessus est satisfiable par rapport à la théorie des nombres réels. Autrement dit, il s'agit de savoir si l'on peut trouver des nombres réels pour les variables x et y qui rendent la formule ci-dessus vraie.

On peut voir une instance d'un problÚme SMT comme une instance du problÚme de satisfiabilité de la logique propositionnelle dans laquelle les variables booléennes sont remplacées par des formules atomiques. Par exemple, la formule ci-dessus est la formule propositionnelle dans laquelle on a remplacé les variables booléennes p, q, r, s par des formules atomiques.

Fonctionnement de base d'un solveur SMT

Un solveur SMT fonctionne autour de deux cƓurs principaux : un solveur SAT et une ou plusieurs procĂ©dures de dĂ©cision de la thĂ©orie. L'idĂ©e est de tester si la formule propositionnelle correspondante (obtenue en remplaçant les prĂ©dicats par des variables boolĂ©ennes) est satisfiable via un solveur SAT. Mais une instance de SMT, mĂȘme si elle est satisfiable lorsqu’elle est vue comme une instance de SAT, n'est pas forcĂ©ment satisfiable modulo une certaine thĂ©orie. Par exemple, n'est pas satisfiable par rapport Ă  la thĂ©orie des rĂ©els, pourtant l'instance de SAT correspondante, p, est satisfiable. C'est pourquoi on vĂ©rifie ensuite la cohĂ©rence avec des procĂ©dures de dĂ©cision de la thĂ©orie. S'il y a cohĂ©rence, on a effectivement une formule satisfiable. Sinon, on enrichit la formule initiale avec de l'information qui reprĂ©sente l'incohĂ©rence. Plus prĂ©cisĂ©ment, le fonctionnement gĂ©nĂ©ral d'un solveur SMT est dĂ©crit de la maniĂšre suivante pour une instance de SMT F donnĂ©e.

  1. Remplacer les prédicats et contraintes de F par des variables booléennes.
  2. Demander au solveur SAT un modÚle de satisfiabilité M.
    • S’il n'existe pas de modĂšle SAT, alors la formule F n’est pas satisfiable, donc pas satisfiable modulo la thĂ©orie.
    • Sinon,
      1. Remplacer dans M les variables par les prĂ©dicats de l'Ă©tape 1.
      2. Vérifier la cohérence du modÚle par la procédure de décision de la théorie.
        • Si le modĂšle est cohĂ©rent, alors la formule F est satisfiable modulo la thĂ©orie et le modĂšle est explicitĂ©.
        • Sinon, recommencer Ă  l'Ă©tape 1 avec la formule F ∧ ÂŹM.

L'architecture des solveurs SMT est donc divisée comme suit : le solveur SAT basé sur l'algorithme DPLL résout la partie booléenne du problÚme et interagit avec le solveur de la théorie pour propager ses solutions. Ce dernier vérifie la satisfiabilité des conjonctions de prédicats de la théorie. Pour des raisons d'efficacité, on souhaite généralement que le solveur de la théorie participe à la propagation et à l'analyse des conflits.

Solveurs SMT

Voici des exemples de solveurs SMT :

Notes et références

  1. (en) Barrett, Clark W and Sebastiani, Roberto and Seshia, Sanjit A and Tinelli, Cesare, « Satisfiability Modulo Theories. », Handbook of Satisfiability,‎ , p. 825-885.

Liens externes

Cet article est issu de wikipedia. Text licence: CC BY-SA 4.0, Des conditions supplĂ©mentaires peuvent s’appliquer aux fichiers multimĂ©dias.