Opened 17 years ago
Closed 17 years ago
#83 closed defect (fixed)
Bug in checking equivalence of array outputs
| Reported by: | zirkel | Owned by: | ywei |
|---|---|---|---|
| Priority: | major | Milestone: | |
| Component: | symbolic | Version: | 1.0 |
| Keywords: | verify, array, output, cvc3 | Cc: |
Description
When an output variable is an array, the output from the spec is currently being compared to itself rather than to the output from the impl. This may be a bug in the verify package.
Change History (4)
comment:1 by , 17 years ago
comment:2 by , 17 years ago
Also, can you please check in a very simple test demonstrating this defect.
comment:3 by , 17 years ago
| Component: | verify → symbolic |
|---|---|
| Owner: | changed from to |
| Status: | new → assigned |
I believe the defect is in the symbolic package. In the class CVC3TheoremProver, in the method processEqualityExpr, it looks like variables leftRead and rightRead are both getting set to the left expression:
Expr leftRead = null;
Expr rightRead = null;
for(int i = 0; i < boundVars.size(); i++)
{
if(leftRead == null)
{
leftRead = vc.readExpr(parseSymExpr(left), (Expr)(boundVars.get(i)));
rightRead = vc.readExpr(parseSymExpr(left), (Expr)(boundVars.get(i)));
}
else
{
leftRead = vc.readExpr(leftRead, (Expr)(boundVars.get(i)));
rightRead = vc.readExpr(rightRead, (Expr)(boundVars.get(i)));
}
}
Note:
See TracTickets
for help on using tickets.

What is the exact command line options you used?