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 ywei, 17 years ago

What is the exact command line options you used?

comment:2 by Stephen Siegel, 17 years ago

Also, can you please check in a very simple test demonstrating this defect.

comment:3 by Stephen Siegel, 17 years ago

Component: verifysymbolic
Owner: changed from Stephen Siegel to ywei
Status: newassigned

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)));
    			}
    		}

comment:4 by ywei, 17 years ago

Resolution: fixed
Status: assignedclosed

Fixed.

Note: See TracTickets for help on using tickets.