Sto modificando uno strumento che utilizza Z3 (in particolare l'API Python) per risolvere i vincoli di bitvector. Ho bisogno di utilizzare un particolare SAT esterna risolutore al posto del Z3 interno uno, quindi sono primo bit-sabbiatura utilizzando la tatticaCome posso accedere alla mappatura delle variabili utilizzata durante il bit-blasting?
Then('simplify', 'bit-blast', 'tseitin-cnf')
dopo di che posso in modo relativamente facile scaricare le clausole in un file DIMACS. Il problema è la mappatura del modello proposizionale risultante su un modello dei vincoli originali: per quanto posso dire, l'API Python non fornisce un modo per accedere al convertitore del modello corrispondente a una tattica. È vero? In tal caso, può essere fatto utilizzando un'API diversa o esiste un modo più semplice? Fondamentalmente ho solo bisogno di sapere come le variabili proposizionali nelle clausole CNF finali corrispondono alle variabili bitvector originali.
Per favore, sii così gentile da dire quale è il tavolo di traduzione? – Benny