Opened 17 years ago

Closed 17 years ago

#8 closed enhancement (fixed)

symbolic expressions not being transformed into canonical form

Reported by: Stephen Siegel Owned by: ywei
Priority: major Milestone:
Component: symbolic Version: 1.0
Keywords: canonicalization Cc:

Description

It seems like the symbolic expressions are not being transformed into a canonical form. Examples:

X0<4&&!X0<0&&2<X0&&1<X0&&0<X0&&X0<4&&!X0<0&&!X2==0&&!X2<0

is a path condition in the tile (compare) example. If this is passed to CVC3's "transform" command, it will simplify it by (for example) removing one of the duplicate "X0<4" clauses.

Another example:

hi = X2+X2;

would be simplified to 2*X2.

The "canonicalization" should be happening after every symbolic operation is performed. It can be achieved by calling CVC3's "transform" function, then reading the expression back into a symbolic expression.

I _think_ (but am not absolutely sure) this would be a good idea, mainly because it will improve state matching (you will be able to tell that two states are equal).

Change History (1)

comment:1 by ywei, 17 years ago

Resolution: fixed
Status: newclosed

Fixed. The symbolic universe will try to simplify each expression by querying CVC3.

Note: See TracTickets for help on using tickets.