Ich möchte die Lösung von z3 ohne Vereinfachung mit let
Anweisungen zurück.verhindern, dass die Lösung vereinfacht wird
Zum Beispiel, wenn ich geben Sie den folgenden:
(declare-const x Int)
(elim-quantifiers (exists ((x.1 Int))
(and (or (and (= (- x.1 2) 0) (<= (- x.1 9) 0))
(and (or (= (- x.1 2) 0) (and (<= (- x.1 4) 0)
(and (<= (- 4 x.1) 0)
(<= (- x.1 11) 0)))) (<= (- x.1 9) 0))) (= (- (+ x.1 2) x) 0))))
ich als zurück, um die Lösung zu bekommen:
(let ((a!1 (and (or (and (<= x 4) (>= x 4)) (and (<= x 6) (>= x 6) (<= x 13)))
(<= x 11))))
(or (and (<= x 4) (>= x 4) (<= x 11)) a!1))
Gibt es eine Möglichkeit Z3 zu sagen, nicht einige komplexe Ausdrücke in eine let-Anweisung zu extrahieren ? Es wird für mich leichter sein, das Ergebnis zu parsen, wenn ich die Antwort ohne Angabe von letter flat bekomme.
Danke. Das hat sehr geholfen. – sriraj
Großartig. Könnten Sie die Antwort akzeptieren? Daher wissen andere Benutzer, dass die Antwort das in Ihrer Frage angegebene Problem löst. Danke –
Können diese Optionen auch mit der C-API eingestellt werden, und wenn ja, wie? –