Vous cherchez des exemples pratiques de usecases SMT Z3 (comme DBC) et alternative open source à Z3? [fermé]

StackOverflow https://stackoverflow.com/questions/4615590

Question

Je me suis intéressé à la recherche d'exemples pratiques d'utilisation SMT Z3 (comme DBC) avec le code et les alternatives open source à cet outil. Donc, en fait, je suis intéressé par les outils de résolution formelle similaires Z3, mais:

  • il doit être open source
  • fournir à la fois de bas niveau (API) et de l'interaction de haut niveau (script texte)
  • Support SMT-LIB
  • approprié (utilisable) dans les outils / écrit / pour les langues comme Java, Python, Ruby, Vala et pas Haskell
  • a stable (utilisable dans la pratique) des outils basés sur elle, comme la conception par contrat (DBC), vérification de type statique, etc.

Selon la page d'accueil SMT-LIB (voir bundle bit.ly pour plus de détails) la liste des 2010 solveurs SMT est: "Alt-Ergo, Barcelogic, Beaver, Boolector, CVC3, DTCoq, MathSAT, OpenSMT, satins, Lance, STP, SWORD, IUCLID, Verit, Yices, Z3."

S'il vous plaît donner des commentaires sur l'utilisation de l'un d'eux dans la pratique (exemples de code sont les meilleurs)?

Enfin, toute information sur la comparaison des possibilités avec GHC serait utile, mais seulement dans le cas où il est un exemple de mise en œuvre (pas une langue « caractéristique »).

Plus d'informations rapide sur Z3 ici http://bit.ly/bundles/ewiger/1

Était-ce utile?

La solution

Au meilleur de ma connaissance, CVC3 se rapproche le plus de vos besoins, en ce qu'elle:

  1. Est-ce un ensemble de fonctionnalités qui est similaire à Z3 de.
  2. A un licence de type BSD
  3. Le solveur sous-jacent pour un certain nombre de projets existants.

C ++ et Java, et probablement autres langues. En général, je pense que l'API est beaucoup plus difficile à utiliser que le (texte) langue . Cela a l'avantage supplémentaire que, si vous restez avec la langue SMT-LIB2, vous pourrez peut-être passer à un autre outil plus tard si cela devient nécessaire. Un grand échantillon d'exemples est disponible sur le site SMT-LIB .

Autres conseils

Vous avez demandé des alternatives opensource à Z3:

Selon SMT-Wikipedia à 2011-08, nous avons:

  

Sur la base de ces mesures, il semble que sont OpenSMT, STP et CVC4 les plus dynamiques, des projets bien organisés.

Je suis en train de vérifier ce genre de choses - à ce jour, trois semble raisonnable, plus ancien cryptogramme -> Je veux dire CVC3

.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top