Die folgenden SMT folumas übergeben Z3 Constraint-Lösung, während CVC4 einen Parsing-Fehler kennzeichnet: "Symbol 'None' zuvor als eine Variable deklariert". Ich habe mit CVC4 1.4 und CVC 1.5 unter Windows getestet. Irgendwelche Vorschläge oder Gedanken?CVC4 Parsing Fehler (die gleiche Formel übergibt Z3)
(set-logic ALL)
(declare-datatypes() ((Enum13 (Green) (Yellow) (None))))
(declare-datatypes() ((Enum0 (True) (False) (None))))
(declare-datatypes() ((Enum9 (Star_3) (Star_2) (Star_1) (None))))
(declare-fun Decomp
(Enum9 Enum13 Enum0)
Enum13)
(declare-fun var_36() Enum0)
(declare-fun var_37() Enum13)
(declare-fun var_71() Enum9)
(declare-fun var_38() Enum13)
(declare-fun var_31() Real)
(assert (and true
true
true
(= var_38
(Decomp var_71 var_37 var_36))))
(assert (>= var_31 0.0))
(assert (<= var_31 700.0))
(check-sat)
Danke für die Antwort. Dies sieht jedoch nicht wie eine intuitive und effiziente Möglichkeit aus, einen Aufzählungstyp zu deklarieren. Wird dies als Einschränkung von CVC4 im Vergleich zu Z3 betrachtet? – Cherry