Przeanalizowałem formułę w QF_AUFLIA z Z3. Wynikiem było sat
. Model zwrócony przez (get-model)
zawierał następujące linie:Sort Mismatch w Modelu
(define-fun PCsc5_() Int
(ite (= 2 false) 23 33)
Według mojego rozumienia języka SMTLIBv2, to stwierdzenie jest źle sformułowany. =
należy stosować tylko do argumentów tego samego rodzaju. Jednak 2
ma sortowanie Int
i false
ma sortowanie Bool
.
Kiedy zwrotnie tylko te dwie linie do Z3, to zgadza się ze mną, mówiąc:
invalid function application, sort mismatch on argument at position 2
Czy to błąd?
Jeśli nie, jak mam interpretować (= 2 false)
?
Tak, wydaje się, że jest to błąd w konstrukcji modelu. Czy możesz przesłać nam wzór, który generuje ten fałszywy model? Dzięki. –
Właśnie wysłałem ci e-mail. – Georg