Skip to content

AProVE returning false alarm for program with unsigned int #1

@debugfe

Description

@debugfe

Hello everyone,
I noticed that AProVE returns "non-terminating" for

int main(void) {
  unsigned int input = (unsigned int) -1; // should be 4294967295
  while(input != 0)
    input--;
  return 0;
}

This is especially surprising as this, more general, program is found terminating:

extern unsigned int __VERIFIER_nondet_uint();

int main(void) {
  unsigned int input = __VERIFIER_nondet_uint();
  while(input != 0)
    input--;
  return 0;
}

Inspecting the generated .koat files I think there is something wrong with the translation as the rewrite system in the koat files seems indeed non-terminating.
I am using the version from last SV-Comp and the corresponding command: ./AProVE.sh --bit-width 64 test.c
Thanks in advance!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions