Skip to content

Eldarica returns SAT for unsat file #72

@kensingRichardt

Description

@kensingRichardt

Hi,

I think I found another bug with the latest version of eldarica:

(set-logic HORN)
(define-fun arrayEq ((ar1 (Array Int Int)) (ar2 (Array Int Int))) Bool (forall ((i Int)) (= (select ar1 i) (select ar2 i))))

(assert (forall (
         (j (Array Int Int))
         (o (Array Int Int))
        )
    (=> (and (arrayEq j o) (= 1 (select o 1)) (= j (store (store o 0 0) 0 0))) false)))

(check-sat)

Eldarica returns sat:

$ ~/eldarica/eld  test.smt2 
sat

However the correct answer should be UNSAT, as the LHS of the assertion is satisfied for an array [0,1,...].
Interestingly re-defining arrayEq as
(define-fun arrayEq ((ar1 (Array Int Int)) (ar2 (Array Int Int))) Bool (= ar1 ar2))
allows eldarica to find the formula UNSAT.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions