Bugfix: proofs for props of non-normal arith lits (#5702)
authorAlex Ozdemir <aozdemir@hmc.edu>
Fri, 18 Dec 2020 15:01:58 +0000 (07:01 -0800)
committerGitHub <noreply@github.com>
Fri, 18 Dec 2020 15:01:58 +0000 (09:01 -0600)
commit5b05e467710e07bbfa27d4a2417ec27b336c245d
treeb909dc2937e88d79a7a631b1afa9caf8fd78df88
parent8a2a526b2dab5d6efaf1435afcc1b7be113a86bf
Bugfix: proofs for props of non-normal arith lits  (#5702)

Arith has a normal form for literals, which the rewriter computes.

Nonetheless, arith sometimes gets (and ultimately propagates) non-normal
literals. It normalizes them internally and goes about its business.

However, when asked for an explanation, it must prove the non-normal
literal, rather than the normal one.

Also includes a regression for the bug, courtesy of Andy.

Co-authored-by: Andrew Reynolds andrew-reynolds@uiowa.edu
src/theory/arith/constraint.cpp
src/theory/arith/constraint.h
src/theory/arith/theory_arith_private.cpp
test/regress/CMakeLists.txt
test/regress/regress0/arith/non-normal.smt2 [new file with mode: 0644]