Fix policy for merging subproofs (#6981)
authorAndrew Reynolds <andrew.j.reynolds@gmail.com>
Wed, 4 Aug 2021 22:11:08 +0000 (17:11 -0500)
committerGitHub <noreply@github.com>
Wed, 4 Aug 2021 22:11:08 +0000 (17:11 -0500)
commit0c9662c76bce118996f839c5889b6bb0d1965044
tree10727491dab4ede3139011c79519e125b7b2ff47
parent25b0456328224186ec699b6dc10d49c077dfb8a2
Fix policy for merging subproofs (#6981)

This makes it so that we replace subproof A with subproof B if A and B prove the same thing, and B contains no assumptions. This is independent of the scope that A and B are in.

The previous policy replaced subproof A with subproof B if A and B prove the same thing and were in the same scope. This is not safe if A occurs in multiple scopes, where free assumptions can escape.

The new policy is more effective and safer than the previous one.
src/proof/proof_node_updater.cpp
src/proof/proof_node_updater.h
test/regress/CMakeLists.txt
test/regress/regress1/strings/open-pf-merge.smt2 [new file with mode: 0644]