Fix soundness issue of missing premises for count bag lemmas (#7615)
authormudathirmahgoub <mudathirmahgoub@gmail.com>
Wed, 10 Nov 2021 02:31:49 +0000 (20:31 -0600)
committerGitHub <noreply@github.com>
Wed, 10 Nov 2021 02:31:49 +0000 (02:31 +0000)
commit1167e38030cbf3c746dcf5bdf09e0ebfa9d44672
tree3fb5c814962387b8227258789d16ce39487b121f
parente7d546b596ccc2f8400f9e6e56a85ce23ff90fb2
Fix soundness issue of missing premises for count bag lemmas (#7615)

This PR fixes soundness issues found by cvc5 fuzzy sygus when it answers unsat for sat problems.
The error is related to a previous fix which did not include the required antecedent in the two lemmas:

(=>  (= e x)
        (=
              (bag.count e (bag x c))
             (ite (>= c 1) c 0)))

and

(=>  (distinct x e))  (= (bag.count e (bag x c)) 0))
src/theory/bags/inference_generator.cpp
src/theory/bags/inference_generator.h
src/theory/inference_id.cpp
src/theory/inference_id.h
test/regress/CMakeLists.txt
test/regress/regress1/bags/fuzzy6.smt2 [new file with mode: 0644]