From f889a161b0851202ba89e01b88b1ae24e8ffcd5b Mon Sep 17 00:00:00 2001 From: trevor_hansen Date: Wed, 28 Jul 2010 07:01:58 +0000 Subject: [PATCH] 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 --- src/simplifier/simplifier.cpp | 3 +++ 1 file changed, 3 insertions(+) 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(); -- 2.47.3