Closed BrunoDutertre closed 1 year ago
By default, Carcará expands function definitions introduced by define-fun
commands (meaning every occurence of aaa
is replaced by (not (= (f y x) (f x y)))
), instead of introducing a new assertion. You can override this behaviour by passing the --dont-apply-function-defs
flag. Using this flag, the example you gave checks without errors.
Ok thanks. Any reason not to make this default?
While the Alethe specification does not explicitly define what is correct in this case, in retrospect it does make more sense for this to be the default behaviour. Commit e8d1e80 fixes this.
Here's a simple problem:
On this input, cvc5 will generate a proof like this:
The first assumption is rejected as invalid by carcara: