A more efficient implementation for bag.card operator (#7797)
authormudathirmahgoub <mudathirmahgoub@gmail.com>
Mon, 13 Dec 2021 22:16:30 +0000 (16:16 -0600)
committerGitHub <noreply@github.com>
Mon, 13 Dec 2021 22:16:30 +0000 (22:16 +0000)
commit9b81d04da42615642c2fd4ec6b4637862848ae0a
treed052be2a0b5e99761e0763c694e63970e0f9af53
parent1e6c7645d3d98ba734ab73ed76c7785b572b86c8
A more efficient implementation for bag.card operator (#7797)

This PR provides a fold like implementation for bag.card operator that does not depends on higher order logic, although it still requires finite model finding.
src/expr/skolem_manager.cpp
src/expr/skolem_manager.h
src/theory/bags/bag_reduction.cpp
src/theory/bags/bag_reduction.h
src/theory/bags/theory_bags.cpp
src/theory/bags/theory_bags.h
src/theory/inference_id.cpp
src/theory/inference_id.h
test/regress/CMakeLists.txt
test/regress/regress1/bags/card1.smt2
test/regress/regress1/bags/card2.smt2 [new file with mode: 0644]