|
1 week ago | |
---|---|---|
project | 2 weeks ago | |
src | 1 week ago | |
.gitignore | 3 weeks ago | |
README.md | 1 week ago | |
build.sbt | 1 week ago |
rogram szukający dowodów w dla wyrażeń logiki pierwszego rzędu metodą tableau.
Umie na przykład dowieść, że istnieje liczba 3:
N(O) ∧ ∀i.((N(i) ⇒ N(s(i)))) ⇒ N(s(s(s(O)))),
albo, że
jeśli w barze jest ktoś, kto pije, to wszyscy w barze piją:
exists x. forall y. (Pije(x) => Pije(y)).
Jeśli chcesz zobaczyć poważną implementację, to polecam tpg, albo poczytać "Handbook of Tableau Methods" (ISBN: 978-94-017-1754-0). Kolega mówił, że ta książka jest na LibGenie, ale ja nie polecam ściągać z tamtąd książek, bo to nielegalne.
Najszybciej (wymaga SBT):
sbt run
sbt 'Docker / publishLocal'
W logach dostaniesz namiar na wybudowany obraz, n.p. localhost/tableaux:0.2.0-SNAPSHOT
.
Potem już tylko odpalić:
podman run -it --rm localhost/tableaux:0.2.0-SNAPSHOT
Możesz se wybudować zip
a z potrzebnymi jarkami i skryptem uruchomieniowym:
sbt 'show Universal / packageBin'
W logach dostaniesz namiar na plik.
Tylko dla użytkowników Graala:
sbt 'show GraalVMNativeImage / packageBin'
Tableaux
jako biblioteki w moim programieObczaj pakiet z API: pl.wojciechkarpiel.tableaux.api i przykład użycia.
Sam se musisz opublikować tę bibliotekę:
sbt publishLocal