(declare-datatypes ((MList 0)) (((mcons (mhead Int) (mtail MList)) (mnill))))
(declare-fun x () MList)
(declare-fun y () MList)
(assert (and ((_ is mcons) x) (= (mtail x) y) (= y mnill))) ;;valid according to smtlib but Eldarica does not accept this
;; (assert (and (is-mcons x) (= (mtail x) y) (= y mnill))) ;;ALL smt solvers accept this recognizer
(check-sat)
Eldarica (version 2.0.8) does not like the first assertion but it is valid according to smtlib.
More context:
I am trying to write a pretty printer for CHC benchmarks containing ADTs. I would like to use the first representation, but only if Eldarica supports it.
Eldarica (version 2.0.8) does not like the first assertion but it is valid according to smtlib.
More context: I am trying to write a pretty printer for CHC benchmarks containing ADTs. I would like to use the first representation, but only if Eldarica supports it.