Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix URR to be (really) complete also under AVATAR #507

Merged
merged 3 commits into from
Dec 7, 2023

Conversation

quickbeam123
Copy link
Collaborator

@quickbeam123 quickbeam123 commented Nov 29, 2023

Currently, the following will happily saturate and report SAT (on an unsat problem)

./vampire_rel_master_6966 Problems/SYN/SYN941+1.p --decode ott+10_1:1_si=on:rtra=on:urr=on:br=off:amm=off_0 --random_seed 148952160

(on your machine, the random seed might need to be altered, but the problem is small and the probability of trouble quite high).

The issue is that we work with binary_resolution = off and urr as the saving grace of completeness for a Horn problem (which SYN941+1 is). URR implements a heuristic which makes it happy on generating the first empty clauses from a given parent. However, in this case, we need all the urr resolvents to close all the AVATAR branches.

This PR adds an option to skip the mentioned heuristic (urr=full) and also updates Options::complete to properly reflect when we are complete and when not. Newly, the above reports

% Termination reason: Refutation not found, incomplete strategy

Copy link

@hzzv hzzv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me!

Shell/Options.cpp Outdated Show resolved Hide resolved
Copy link
Contributor

@MichaelRawson MichaelRawson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice. If you think the check for _full might be in the hot path, we could make URResolution template<bool full> URResolution to save some tiny amount of branching...but probably it doesn't matter.

@MichaelRawson
Copy link
Contributor

Conflicts are because URResolution doesn't need to USE_ALLOCATOR. Should be a quick rebase, lmk if you want me to fix it.

@quickbeam123 quickbeam123 merged commit 237fa7f into master Dec 7, 2023
1 check passed
@quickbeam123 quickbeam123 deleted the martin-fix-urr branch December 7, 2023 05:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants