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

Produce proofs for Sign, Max, Absolute Value and Disjunction constraints #689

Merged
merged 141 commits into from
Dec 11, 2023

Conversation

OmriIsacHUJI
Copy link
Contributor

No description provided.

src/common/MString.cpp Outdated Show resolved Hide resolved
src/configuration/GlobalConfiguration.cpp Outdated Show resolved Hide resolved
if ( variable == _b )
{
if ( bound > 0 )
if ( FloatUtils::gt( bound, 0 ) && ( !proofs || !phaseFixed() ) )
Copy link
Collaborator

Choose a reason for hiding this comment

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

I don't understand the logic of the second conjunct. If proofs are off, this is the normal case - sure. But if they are on, what does the phase matter? Please make it clearer

Copy link
Contributor Author

@OmriIsacHUJI OmriIsacHUJI Nov 30, 2023

Choose a reason for hiding this comment

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

If proofs are on and the phase is fixed, then we have a row in the tableau that corresponds exactly to this phase. Thus we don't need to update a lemma and we can skip this part. An alternative solution would be to add a conditional, that will deduce bound without a lemma in the case the phase is fixed. What do you think?

src/engine/AbsoluteValueConstraint.cpp Outdated Show resolved Hide resolved
src/engine/AbsoluteValueConstraint.cpp Outdated Show resolved Hide resolved
src/engine/PiecewiseLinearConstraint.h Outdated Show resolved Hide resolved
src/engine/SignConstraint.cpp Show resolved Hide resolved
src/proofs/PlcLemma.cpp Outdated Show resolved Hide resolved
src/proofs/PlcLemma.cpp Outdated Show resolved Hide resolved
src/proofs/SmtLibWriter.cpp Show resolved Hide resolved
src/engine/AbsoluteValueConstraint.cpp Outdated Show resolved Hide resolved
@@ -164,5 +164,4 @@ marabou_add_input_query_test(1 ACASXU_maxtest2.ipq unsat "--prove-unsat" "ipq")
# Sign
marabou_add_input_query_test(1 deep_6_index_5566.ipq unsat "--prove-unsat" "ipq")
marabou_add_input_query_test(1 deep_6_index_5567.ipq unsat "--prove-unsat" "ipq")
marabou_add_input_query_test(1 deep_6_index_5525.ipq unsat "--prove-unsat" "ipq")
Copy link
Collaborator

Choose a reason for hiding this comment

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

What was problematic about this test?

@OmriIsacHUJI OmriIsacHUJI marked this pull request as ready for review December 7, 2023 12:45
@MatthewDaggitt
Copy link
Collaborator

Just a quick reminder that if you're adding functionality, it would be great to get an entry in the CHANGELOG file.

CHANGELOG.md Outdated
@@ -1,5 +1,9 @@
# Changelog

## Version 1.2.0

* Added proof producing versions for Sign, Max, Absolute Value and Disjunction constraints
Copy link
Collaborator

Choose a reason for hiding this comment

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

I think we're still on v1.1.0 actually as it hasn't been released. Maybe the v1.1.0 title should Next release to avoid confusion?

@omriisack omriisack merged commit 8349949 into NeuralNetworkVerification:master Dec 11, 2023
11 checks passed
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.

4 participants