DRAFT, 13-OCT-2003

SVA 3.1A PROPOSAL:  NEGATED BOOLEANS
------------------------------------

DISCUSSION:
-----------

This proposal eliminates the special treatment of negated booleans
in the clock rewrite rules of the SVA formal semantics.  This special
treatment blurs the distinction between boolean negation and property
negation, which only complicates the semantics.

If b is a boolean expression, then the current rewrite rules treat 

1.   @(c) not b 

the same as 

2.   @(c) !b

and not the same as any of the following:

3.   @(c) not (b ##0 1'b1)

4.   @(c) not (b and 1'b1)

5.   @(c) not (b or b)

Under the proposal, 1. will be semantically equivalent to 3., 4., and 
5., while 2. will be semantically distinct.  The rationale for this
change is that "not" is a property-level negation and so the treatment
of "@(c) not b" should be consistent with first promoting "b" to be 
a sequence and then promoting that sequence to be a property.  The 
proposal also restores the distinction between "not" and "!" applied to
boolean expressions.

This change has been recommended as a matter of alignment by the 
SVA/PSL Alignment Subcommittee.


PROPOSED CHANGES TO THE BNF:
----------------------------

NONE.



PROPOSED CHANGES TO LRM TEXT:
-----------------------------

NONE.   


PROPOSED CHANGES TO THE FORMAL SEMANTICS:
-----------------------------------------

1. p. 347, G.3.1.  Delete

      * @(c) not b ---> @(c) !b.

2. p. 347, G.3.1.  Change

      * @(c) not R ---> not @(c) R, provided R is not a boolean expression

   to 

      * @(c) not R ---> not @(c) R

If the proposal on Nested Implications and Boolean Property Connectives is 
approved, then replace 2 by

2'. p. 347, G.3.1.  Change

      * @(c) not R ---> not @(c) R, provided R is not a boolean expression

   to 

      * @(c) not P ---> not @(c) P

