Ho bisogno di un rilevatore di teoremi per alcuni semplici problemi aritmetici lineari. Tuttavia, non riesco a far funzionare Z3 anche su problemi semplici. Sono consapevole che è incompleta, ma dovrebbe essere in grado di gestire questo semplice esempio:Supporto quantificatore Z3
(assert (forall ((t Int)) (= t 5)))
(check-sat)
Non sono sicuro se sto affaccia qualcosa, ma questo dovrebbe essere banale smentire. Ho anche provato questo esempio semplice:
(assert (forall ((t Bool)) (= t true)))
(check-sat)
che dovrebbe essere risolvibile facendo una ricerca esaustiva, dal momento di avvio contiene solo due valori.
In entrambi i casi, z3 risponde con lo sconosciuto. Mi piacerebbe sapere se sto facendo qualcosa di sbagliato qui o se non è possibile raccomandare un dimostratore di teoremi per questi tipi di formule.
È grandioso. Funziona. Puoi dirmi come specificare questo usando C Api? Causa la funzione Z3_check non accetta ulteriori argomenti. – ThorstenT
Devi creare una tattica e convertirla in un risolutore. Ho aggiunto un esempio utilizzando le API C/C++. –
È davvero fantastico. Ora Z3 funziona come lo voglio :) – ThorstenT