Skip to content

w4_abc_aiger proves False #1938

Closed
Closed
@qsctr

Description

For the following C program

void test(int *x) {
    *x = 2;
}

and the following SAW script

m <- llvm_load_module "test4.bc";

let setup = do {
  x <- llvm_alloc_readonly (llvm_int 32);
  llvm_execute_func [x];
};

llvm_verify m "test" [] true setup abc;

an error should be reported because the code writes to read-only memory. However SAW instead outputs that the proof is successful:

[01:33:31.665] Loading file "/home/bretton/Documents/github/saw-script/test/test4.saw"
[01:33:31.671] Verifying test ...
[01:33:31.683] Simulating test ...
[01:33:31.687] Checking proof obligations test ...
[01:33:31.738] Proof succeeded! test

This issue seems to only occur with the abc/w4_abc_aiger backend. The z3, w4_abc_smtlib2, w4_abc_verilog, and sbv_abc backends correctly report an error. @andreistefanescu suggests that the problem is in the translation to AIGER.

Metadata

Assignees

Labels

type: bugIssues reporting bugs or unexpected/unwanted behaviorunsoundnessIssues that can lead to unsoundness or false verification

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions