Ich habe mir verschiedene SMT-Löser angesehen, hauptsächlich Z3, CVC4 und VeriT. Sie alle haben vage Beschreibungen ihrer Fähigkeit, SMT-Probleme mit Quantifizierern zu lösen. Ihre Dokumentation basiert hauptsächlich auf Beispielen (Z3) oder besteht aus wissenschaftlichen Arbeiten, die mögliche Änderungen beschreiben, die möglicherweise tatsächlich umgesetzt werden.Für welche Quantoren ist SMT vollständig?
Ich weiß, dass es entscheidbar Fragmente von Logik erster Ordnung, wie zum Beispiel:
- endlichwertige begrenzt quantifiers
- monadische Logik erster Ordnung
Was würde Ich mag an Wissen ist, welche (wenn überhaupt) Klassen von FOL die verschiedenen SMT-Löser sind, die garantiert vollständig sind? Woher weiß ich, ob ein Problem, das ich sehe, in den Fragmenten liegt, für die sie vollständig sind?
Das ist eine großartige Frage, obwohl ich bezweifle, dass es eine definitive Antwort außer "was immer zu dieser Zeit implementiert wird" gibt. Hier ist eine nette Übersicht über Quantoren in SMT, falls Sie sie noch nicht gesehen haben: https://leodemoura.github.io/files/qsmt.pdf –
Eine Alternative zu E-Matching und MBQI wird hier beschrieben: https: //www.microsoft.com/en-us/research/wp-content/uploads/2016/02/nbjorner-qplay-lpar20.pdf –