Associate all lemmas in non-linear arithmetic with an inference identifier (#4712)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Thu, 9 Jul 2020 20:21:08 +0000 (15:21 -0500)
committerGitHub <noreply@github.com>
Thu, 9 Jul 2020 20:21:08 +0000 (15:21 -0500)
commit68df2d8d6c9218fe6a9bf01d22c7dfe2abdf684d
tree672f3d0953e7de0f50ccbaa173afc360e4b19bfe
parentc64575b7c65a9822955efbf7711736068394899a
Associate all lemmas in non-linear arithmetic with an inference identifier (#4712)

This marks all lemmas in non-linear arithmetic with an identifier, which indicates informally the kind of justification that was used for them. The main motivation for this is for debugging the behavior of the non-linear solver.

The number of inferences can then be seen with --stats:

nl::inferences, [(SPLIT_ZERO : 19), (SIGN : 4), (COMPARISON : 29)]
The same design was used in strings and has been quite helpful.

This also adds a few high level stats to the new statistics class for non-linear.
src/CMakeLists.txt
src/theory/arith/nl/inference.cpp [new file with mode: 0644]
src/theory/arith/nl/inference.h [new file with mode: 0644]
src/theory/arith/nl/nl_lemma_utils.h
src/theory/arith/nl/nl_solver.cpp
src/theory/arith/nl/nonlinear_extension.cpp
src/theory/arith/nl/nonlinear_extension.h
src/theory/arith/nl/stats.cpp [new file with mode: 0644]
src/theory/arith/nl/stats.h [new file with mode: 0644]
src/theory/arith/nl/transcendental_solver.cpp