In cerca di esempi pratici di casi d'uso SMT Z3 (come DBC) e un'alternativa open source a Z3? [chiuso]

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

Domanda

ho avuto interesse e alla ricerca di esempi pratici di utilizzo SMT Z3 (come DBC) con codice e open source alternative a questo strumento. Quindi, in realtà, io sono interessato a simili strumenti solving formale Z3, ma:

  • deve essere open source
  • fornire sia di basso livello (API) e ad alto livello (script testo) interazione
  • Supporto SMT-LIB
  • adatto (utilizzabile) in strumenti / scritto in / per linguaggi come Java, Python, Ruby, Vala, e non Haskell
  • ha stabile (utilizzabile in pratica) strumenti basati su di esso, come il design per contratto (DBC), il tipo di verifica statica, ecc.

Secondo SMT-LIB home page (vedi bit.ly impacchettare per i dettagli) l'elenco dei 2010 solutori SMT è: "Alt-Ergo, Barcelogic, Castoro, Boolector, CVC3, DPT, MathSAT, OpenSMT, rasatello, Spear, STP, SPADA, IUCLID, Verit, Yices, Z3".

Si prega di fornire tutte le risposte sull'uso di uno di essi, in pratica (esempi di codice sono i migliori)?

Infine, tutte le informazioni sul confronto di esso con possibilità GHC sarebbe utile, ma solo nel caso in cui v'è un esempio di implementazione (non una lingua "caratteristica").

Per informazioni più veloce su Z3 qui http://bit.ly/bundles/ewiger/1

È stato utile?

Soluzione

Per quanto a mia conoscenza, CVC3 più si avvicina alle vostre esigenze, nel senso che:

  1. Ha un set di funzionalità che è simile a Z3 di.
  2. BSD-style
  3. è il risolutore di base per una serie di progetti esistenti.

attacchi per C ++ e Java, e probabilmente altre lingue. In generale, ritengo l'API è molto più difficile da usare rispetto alla (testuale) ingresso lingua . Questo ha il vantaggio che, se si bastone con il linguaggio SMT-LIB2, si può essere in grado di passare a un altro strumento in seguito, se diventa necessario. Un ampio campione di esempi sono disponibili sul SMT-LIB sito .

Altri suggerimenti

Hai chiesto di alternative opensource per Z3:

SMT-Wikipedia al 2011-08, abbiamo:

  

In base a queste misure, sembra che i più vivaci, i progetti ben organizzati sono OpenSMT, STP e CVC4.

Sto solo controllando questa roba - finora, tutti e tre sembra ragionevole, più vecchio CVC -.> Ho CVC3 media

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top