Skip to content

AG queries with counterexamples is doubly-inverted, which is confusing. #41

@sillydan1

Description

@sillydan1

With AG queries, they are always "true" until you find a counter-example, then they are "false", but with a solution. Right now, we are doing the opposite.

In other words: AG queries (safety queries) should be disproven by finding a trace, not proven.

Solutions should be refactored to have:

struct query_answer_t {
  query_t q;
  std::optional<state_it_t> witnessing_state; // backtraceable - if optional is empty, no trace is availble (yet)
  bool witnessing_state_is_proof_of_unsat; // when true, then the query is _not_ satisfied
}

or something like that.

See forward_reachability_searcher.cpp:84

Metadata

Metadata

Assignees

No one assigned

    Labels

    bug 🐛Something isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions