Übersetzen Sie Antwortsatzprogramme in die Sprache des Theorembeweisers erster Ordnung
Notiz
Sie sehen sich derzeit Version 1 von anthem an, die von Patrick Lühne erstellt wurde und nicht mehr weiterentwickelt wird. Es werden keine weiteren Commits für dieses Repository vorgenommen.
Wenn Sie an einer aktuellen Version von Anthem interessiert sind, schauen Sie sich das neue Repository an.
anthem übersetzt ASP-Programme (in der Eingabesprache clingo ) in die Sprache von Theorembeweisern erster Ordnung wie Prover9.
Um zu überprüfen, ob ein Programm eine Spezifikation implementiert, rufen Sie anthem mit dem Befehl verify-program auf:
$ anthem verify-program <Programmdatei> <Spezifikationsdatei>...
Beachten Sie, dass mehrere Spezifikationsdateien angegeben werden können. Dies ist nützlich, um Lemmata und Axiome von den Annahmen und Spezifikationen zu trennen.
Das Beispiel zur Berechnung des Bodens der Quadratwurzel einer Zahl kann wie folgt wiedergegeben werden:
$ Anthem Verify-Program-Beispiele/Beispiel-2.{lp,spec,lemmas}Die Klammerschreibweise ist eine Bash-Abkürzung für
$ Anthem Verifizierungsprogramm Beispiele/Beispiel-2.lp Beispiele/Beispiel-2.spec Beispiele/Beispiel-2.lemmas
Standardmäßig führt anthem die Clark-Vervollständigung der übersetzten Formeln durch, erkennt, welche Variablen ganzzahlig sind, und vereinfacht die Ausgabe durch die Anwendung mehrerer grundlegender Transformationsregeln.
Diese Verarbeitungsschritte können mit den Optionen --no-complete , --no-simplify und --no-detect-integers ausgeschaltet werden.
anthem wurde mit cargo -Toolchain von Rust erstellt. Nach der Installation von Rust kann anthem wie folgt erstellt werden:
$ Git-Klon https://github.com/potassco/anthem.git $ CD-Hymne $ Cargo Build --Release
Die anthem Binärdatei ist dann im Verzeichnis target/release/ verfügbar. Alternativ kann anthem auch mit cargo wie folgt aufgerufen werden:
$ cargo run -- verify-program <Programmdatei> <Spezifikationsdatei>...
Patrick Lühne