Questo repository contiene la mia implementazione di una versione ridotta dell'algoritmo di eliminazione dei quantificatori nell'aritmetica di Presburger svolto come progetto in Università.
Per compilare il programma è sufficiente gcc
, ciononostante rende molto più
agevole l'esecuzione dell'ultimo utilizzare il makefile
che ho creato
appositamente.
Inoltre il makefile
permette di effettuare altre utili operazioni, per le quali
però sono necessari i seguenti:
gdb
per il debuggingguile
per valutare le espressioni generate dal programmapython
(versione 3) per generare il sorgente che viene eseguito daz3
z3
per verificare la correttezza delle espressioni generate dal programmavalgrind
per appurare la mancanza di memory leaks
Sono disponibili i seguenti comandi:
make run
esegue il programma usando dando come input la formula e la variabile da eliminare impostate nelmakefile
make valgrind
esegue il programma convalgrind
con gli stessi input dimake run
make debug
esegue il programma congdb
con gli stessi input dimake run
make eq formula="#" variables="#" guess="#"
esegue il programma passandoformula
e e la prima variabile invariables
e verifica tramitez3
se l'output del programma è equivalente aguess
(attenzione: il processo potrebbe non arrestarsi mai).make eval
esegue il programma con gli stessi input dimake run
e cerca di valutare la formula equivalente, ovviamente ciò funziona solo se la formula equivalente non contiene più variabili
L'elaborato che si trova all'interno di /doc/
contiene una breve introduzione teorica , la discussione
dell'implementazione e alcune informazioni sull'utilizzo (tra cui esempi).