CM5 Flashcards
Que signifie SMT ?
Satisfiability Modulo Theory, il s’agit determiner si des formules contenant des symboles de théories particulières sont satisfiables ou non
Quelles théories peuvent être traités avec la SMT ?
Les théories décidables
Principe de la SMT pour une formule φ
- Convertir φ en forme CNF
- Remplacer chaque littéral par une variable propositionnelle (*)
- Appeler un solveur SAT pour obtenir un modèle M de φ
- Convertir M en contraintes pour la théorie et le faire vérifier par la procédure de décision de la théorie
- Renvoyer φ est satisfiable si M l’est dans la théorie, sinon ajouter ¬M à Φ et reprendre à l’étape (*)
Inconvénient de la méthode de la SMT avec n’importe quel solveur SAT
La recherche de modèle n’est pas guidée par la théorie, donc ce n’est pas aussi efficace que ça pourrait l’être
Qu’est-ce que DPLL abstrait ?
Ce sont les règles de DPLL classiques mais où les littéraux sont des littéraux du premier ordre et plus de la logique propositionnelle
Qu’est-ce que DPLL abstrait modulo théories (DPLL(T)) ?
Ce sont les règles de DPLL abstrait avec des règles permettant à la théorie d’injecter de nouvelles clauses (tautologies pour la théorie) dans l’ensemble des clauses
Règles de DPPL abstrait
- unit prop
- decide
- unsat
- backjump
unit prop (DPLL abstrait)
M || S, C ∨ l → M, l || S, C ∨ l si I !∈ M et M |= ¬C
decide (DPLL abstrait)
M || S → M, ld || S si I !∈ M et I ∈ S ou ¬I ∈ S
unsat (DPLL abstrait)
M || S, C → unsat si M’ |= ¬C tel que M’ ⊆ M et il n’existe pas Id ≤ l’ dans M pour tout I’ ∈ M’
backjump (DPLL abstrait)
M, Id, M’ || S, C → M, I’ || S, C si M, Id, M’ |= ¬C, et il existe
une clause C’ ∨ l’ telle que : l’ !∈ M, et l’ ∈ S ou ¬l’ ∈ S ou l’ ∈ M, ld, M’ ou
¬l’ ∈ M, ld, M’, et S, C |= C’ ∨ l’, et M |= ¬C’
Règles de DPPL abstrait modulo théories
- unit prop
- decide
- unsat
- backjump
- learn
learn (DPLL modulo théorie)
M || S → M || S, S’ si |=t S’ où T est une théorie
Améliorations possibles de DPLL(T)
- Minimiser les clauses apprises
- Détecter les conflits plus tôt
- Faire de la propagation avec la théorie
Comment minimiser les clauses apprises pour améliorer DPLL(T) ?
Quand on rencontre un conflit en appliquant la règle learn, plutôt qu’apprendre la négation de tout le modèle, on apprend seulement la négation du conflita