Standardize explanations in arrays (#4804)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Fri, 31 Jul 2020 00:35:22 +0000 (19:35 -0500)
committerGitHub <noreply@github.com>
Fri, 31 Jul 2020 00:35:22 +0000 (19:35 -0500)
commit728b73212dad6a7ec0e2a6a97761f8bbaabee914
treec8a72d27e83598674484b9171c556977025ef1f0
parent2ff7f9a5cde5faeb246b6c68de085ef008c107d2
Standardize explanations in arrays (#4804)

Some internal inferences had a non-standard way of providing (disjunctive) reasons and a custom way of explaining them.

This PR simplifies the array solver so that its explanations are analogous to the other equality engine based theory solvers (strings, datatypes, sets, ...). This is done in preparation for the incorporation of the proof equality engine in arrays, which follows a standard design for reasons/explanations.

The performance impact on QF arrays is negligible
src/theory/arrays/theory_arrays.cpp