-
Notifications
You must be signed in to change notification settings - Fork 46
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
314 adding the abstract numeric domains of the apron library as smt solver #346
base: master
Are you sure you want to change the base?
314 adding the abstract numeric domains of the apron library as smt solver #346
Conversation
Merge branch '314-adding-the-abstract-numeric-domains-of-the-apron-library-as-smt-solver' of github.com:sosy-lab/java-smt into 314-adding-the-abstract-numeric-domains-of-the-apron-library-as-smt-solver
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some minor points to address before we can merge.
|
||
public class ApronApiTest { | ||
|
||
public static Manager manager = new PolkaEq(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a small description as to what PolkaEQ is for people not fimilar with abstract numeric domains?
|
||
@Override | ||
protected ApronNode not(ApronNode pParam1) { | ||
throw new UnsupportedOperationException("Apron does not support not() operations."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You could add a comment about the possibility of transforming the formula into negation normal form, as discussed in your talk.
} | ||
} | ||
|
||
private ApronNode getComplexValue(ApronNode pNode) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The method is quite big, maybe it would be good to split it up.
src/org/sosy_lab/java_smt/solvers/apron/ApronRationalFormulaManager.java
Outdated
Show resolved
Hide resolved
} | ||
return first; | ||
} | ||
return null; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is null
the correct return here?
Maybe throw an exception instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm returning 0 now.
…ding-the-abstract-numeric-domains-of-the-apron-library-as-smt-solver # Conflicts: # .gitignore # build/build-publish-solvers.xml # lib/ivy.xml # src/org/sosy_lab/java_smt/test/BooleanFormulaSubjectTest.java # src/org/sosy_lab/java_smt/test/FormulaManagerTest.java # src/org/sosy_lab/java_smt/test/ModelEvaluationTest.java # src/org/sosy_lab/java_smt/test/NonLinearArithmeticTest.java # src/org/sosy_lab/java_smt/test/ProverEnvironmentTest.java # src/org/sosy_lab/java_smt/test/RationalFormulaManagerTest.java # src/org/sosy_lab/java_smt/test/SolverBasedTest0.java # src/org/sosy_lab/java_smt/test/SolverConcurrencyTest.java # src/org/sosy_lab/java_smt/test/SolverStackTest.java # src/org/sosy_lab/java_smt/test/TranslateFormulaTest.java
…actProver to manage its assertion stack.
@baierd The code looks good so far. Can you upload the solver backend to Ivy? (Note that the binaries will depend on system supplied MPFR and GMP libraries. If this is a problem we can probably still change our build script to include them with the installation.) This is what I used to build the binaries: (We need the |
I could also create a patch from your changes and include it with JavaSMT. This is probably easier to maintain than keeping the fork updated? |
…ot match any of the special cases. This is necessary as default values don't work properly and the argument may not have been fully substituted. In that case it's not a value at all and we need to return 'null'.
Integration of the APRON Numeric Abstract Domain Library as a quasi SMT solver supporting Integer, Rational and Boolean.
Problems with the implementation:
x = 3, y = 1/2
gives]-infinity, infinity[
as value set forx = y +3
for bothx
andy
;