From: trevor_hansen Date: Wed, 28 Jul 2010 07:01:58 +0000 (+0000) Subject: Bugfix. STP may produce the wrong answer. Introduced revision 947. X-Git-Url: https://git.unchartedbackwaters.co.uk/w/?a=commitdiff_plain;h=f889a161b0851202ba89e01b88b1ae24e8ffcd5b;p=francis%2Fstp.git Bugfix. STP may produce the wrong answer. Introduced revision 947. I enabled creation of multiplication nodes with >2 children. But the DistributeMultOverPlus function ignores the third (and later) children. git-svn-id: https://stp-fast-prover.svn.sourceforge.net/svnroot/stp-fast-prover/trunk/stp@958 e59a4935-1847-0410-ae03-e826735625c1 --- diff --git a/src/simplifier/simplifier.cpp b/src/simplifier/simplifier.cpp index 26bb1ee..21bc36e 100644 --- a/src/simplifier/simplifier.cpp +++ b/src/simplifier/simplifier.cpp @@ -1845,6 +1845,7 @@ namespace BEEV output = nf->CreateTerm(k, inputValueWidth, nonconstkids); output = Flatten(output); + output = makeTower(k,output.GetChildren()); output = DistributeMultOverPlus(output, true); output = CombineLikeTerms(output); } @@ -3074,6 +3075,8 @@ namespace BEEV if (BVMULT != k) return a; + assert(a.Degree() == 2); + ASTNode left = a[0]; ASTNode right = a[1]; Kind left_kind = left.GetKind();