[sv-ac] Re: using |-> rather than ##0

From: John Havlicek <john.havlicek_at_.....>
Date: Tue Aug 14 2007 - 10:28:23 PDT
Hi Ed:

> Thank you.  but apart from the emptiness of the antecedent, the main
> difff is that the formulation is simpler with |-> and mor eintuitive.
> Correct?

Yes, although the emptiness is important and the main reason to prefer
"|->" over "##0".  In fact, I would argue that using "##0" will be
broken unless there is more case splitting to handle degenerate situations.

For example, 

(1)  1[*0] |=> p

is legal, and so is
  
(2)  1 |-> 1[*0] |=> p

(1) and (2) are equivalent in the unclocked neutral property semantics, which
is defined for non-empty words.

But 

(3)  1 ##0 1[*0] |=> p

is not (currently) legal because the antecedent is degenerate.
If we allow (3) to be legal, the unclocked semantics as it is
currently written makes it a tautology.

J.H.


> Content-class: urn:content-classes:message
> X-MimeOLE: Produced By Microsoft Exchange V6.5
> X-OriginalArrivalTime: 14 Aug 2007 16:49:32.0793 (UTC) FILETIME=[16D47690:01C7DE93]
> Date: Tue, 14 Aug 2007 09:49:31 -0700
> X-MS-Has-Attach: 
> X-MS-TNEF-Correlator: 
> Thread-Topic: using |-> rather than ##0
> Thread-Index: AcfekgagxoTZSzNPRn6dmz/xXtCEjAAANlyQ
> From: "Eduard Cerny" <Eduard.Cerny@synopsys.com>
> Cc: <sv-ac@eda-stds.org>
> 
> This is a multi-part message in MIME format.
> 
> ------_=_NextPart_001_01C7DE93.1A879380
> Content-Type: text/plain;
> 	charset="us-ascii"
> Content-Transfer-Encoding: quoted-printable
> 
> Hi John,
> 
> Thank you.  but apart from the emptiness of the antecedent, the main
> difff is that the formulation is simpler with |-> and mor eintuitive.
> Correct?
> 
> best...
> ed
> 
> 
> > -----Original Message-----
> > From: John Havlicek [mailto:john.havlicek@freescale.com]=20
> > Sent: Tuesday, August 14, 2007 12:42 PM
> > To: eduard.cerny@synopsys.COM
> > Cc: sv-ac@eda-stds.org
> > Subject: using |-> rather than ##0
> >=20
> > Hi Ed:
> >=20
> > You asked before about why the 1668 proposal for Annex F
> > uses |-> rather than ##0.
> >=20
> > I said that I don't think there is any difference, but=20
> > I was wrong and I actually thought about this before.
> >=20
> > I think that |-> is preferable when combining with |=3D>
> > because |=3D> does not require the antecedent to match=20
> > non-empty.  Another point is that the associativity
> > is counterintuitive with ##0.
> >=20
> > I wrote some notes back in July using only the=20
> > unclocked semantics.  I've copied them below.
> >=20
> > J.H.
> >=20
> > -------------------------------
> > 2007-07-06
> >=20
> > Q:  What is the difference between=20
> >=20
> >   1 |-> r |-> p  and  1 ##0 r |-> p
> >=20
> > ?
> >=20
> > Recall that neutral satisfaction is not defined for the empty word.
> > Let |w| > 0.
> >=20
> > w |=3D 1 |-> r |-> p
> > iff  w |=3D r |-> p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and  xy |=3D=3D r, yz =
> |=3D p
> >=20
> > w |=3D 1 ##0 r |-> p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and xy |=3D=3D 1 ##0=20
> > r, yz |=3D p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and  xy |=3D=3D r, yz =
> |=3D p
> > iff  w |=3D r |-> p
> >=20
> >=20
> > -------------------------------
> > 2007-07-05
> >=20
> > Q:  What is the difference between=20
> >=20
> >   1 |-> r |=3D> p  and  1 ##0 r |=3D> p
> >=20
> > ?
> >=20
> > Using old semantics of |=3D> (unclocked)
> > --------------------------------------
> >=20
> > Recall that neutral satisfaction is not defined for the empty word.
> > Let |w| > 0.
> >=20
> > w |=3D 1 |-> r |=3D> p
> > iff  w |=3D r |=3D> p
> > iff  w |=3D r ##1 1 |-> p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and  xy |=3D=3D r ##1=20
> > 1, yz |=3D p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and  x |=3D=3D r, yz =
> |=3D p
> > iff  for all u,v s.t. w =3D uv and |v| > 0 and  u |=3D=3D r, v |=3D p
> >=20
> > w |=3D 1 ##0 r |=3D> p
> > iff  w |=3D (1 ##0 r) ##1 1 |-> p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and xy |=3D=3D (1 ##0=20
> > r) ##1 1, yz |=3D p
> > iff  for all x,y,z s.t. w =3D xyz and |y| =3D 1 and x |=3D=3D (1 ##0=20
> > r), yz |=3D p
> > iff  for all u,v s.t. w =3D uv and |u| > 0 and |v| > 0 and  u=20
> > |=3D=3D r, v |=3D p
> >=20
> > Thus, for |w| > 0, the formulation
> >=20
> >    1 |-> r |=3D> p
> >=20
> > is preferable.
> >=20
> >=20
> > Using new semantics of |=3D> (unclocked)
> > --------------------------------------
> >=20
> > Recall that neutral satisfaction is not defined for the empty word.
> > Let |w| > 0.
> >=20
> > w |=3D 1 |-> r |=3D> p
> > iff  w |=3D r |=3D> p
> > iff  [new semantics of |=3D>]
> >      for all x,y s.t. w =3D xy and x |=3D=3D r, y |=3D p
> >=20
> > There is something potentially ill-defined here, since we=20
> > have not required
> > |y| > 0 when we make inductive reference to y |=3D p.
> >=20
> > w |=3D 1 ##0 r |=3D> p
> > iff  [new semantics of |=3D>]
> >      for all x,y s.t. w =3D xy and x |=3D=3D 1 ##0 r, y |=3D p
> > iff  for all x,y s.t. w =3D xy and |x| > 0 and x |=3D=3D r, y |=3D p
> >=20
> > Again, there is something potentially ill-defined here, since=20
> > we have not=20
> > required |y| > 0 when we make inductive reference to y |=3D p.
> >=20
> > Thus, for |w| > 0, the formulation
> >=20
> >    1 |-> r |=3D> p
> >=20
> > is preferable.
> >=20
> >=20
> 
> ------_=_NextPart_001_01C7DE93.1A879380
> Content-Type: text/html;
> 	charset="us-ascii"
> Content-Transfer-Encoding: quoted-printable
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
> <HTML>
> <HEAD>
> <META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
> charset=3Dus-ascii">
> <META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version =
> 6.5.7652.24">
> <TITLE>RE: using |-&gt; rather than ##0</TITLE>
> </HEAD>
> <BODY>
> <!-- Converted from text/plain format -->
> 
> <P><FONT SIZE=3D2>Hi John,<BR>
> <BR>
> Thank you.&nbsp; but apart from the emptiness of the antecedent, the =
> main<BR>
> difff is that the formulation is simpler with |-&gt; and mor =
> eintuitive.<BR>
> Correct?<BR>
> <BR>
> best...<BR>
> ed<BR>
> <BR>
> <BR>
> &gt; -----Original Message-----<BR>
> &gt; From: John Havlicek [<A =
> HREF=3D"mailto:john.havlicek@freescale.com">mailto:john.havlicek@freescal=
> e.com</A>]<BR>
> &gt; Sent: Tuesday, August 14, 2007 12:42 PM<BR>
> &gt; To: eduard.cerny@synopsys.COM<BR>
> &gt; Cc: sv-ac@eda-stds.org<BR>
> &gt; Subject: using |-&gt; rather than ##0<BR>
> &gt;<BR>
> &gt; Hi Ed:<BR>
> &gt;<BR>
> &gt; You asked before about why the 1668 proposal for Annex F<BR>
> &gt; uses |-&gt; rather than ##0.<BR>
> &gt;<BR>
> &gt; I said that I don't think there is any difference, but<BR>
> &gt; I was wrong and I actually thought about this before.<BR>
> &gt;<BR>
> &gt; I think that |-&gt; is preferable when combining with |=3D&gt;<BR>
> &gt; because |=3D&gt; does not require the antecedent to match<BR>
> &gt; non-empty.&nbsp; Another point is that the associativity<BR>
> &gt; is counterintuitive with ##0.<BR>
> &gt;<BR>
> &gt; I wrote some notes back in July using only the<BR>
> &gt; unclocked semantics.&nbsp; I've copied them below.<BR>
> &gt;<BR>
> &gt; J.H.<BR>
> &gt;<BR>
> &gt; -------------------------------<BR>
> &gt; 2007-07-06<BR>
> &gt;<BR>
> &gt; Q:&nbsp; What is the difference between<BR>
> &gt;<BR>
> &gt;&nbsp;&nbsp; 1 |-&gt; r |-&gt; p&nbsp; and&nbsp; 1 ##0 r |-&gt; =
> p<BR>
> &gt;<BR>
> &gt; ?<BR>
> &gt;<BR>
> &gt; Recall that neutral satisfaction is not defined for the empty =
> word.<BR>
> &gt; Let |w| &gt; 0.<BR>
> &gt;<BR>
> &gt; w |=3D 1 |-&gt; r |-&gt; p<BR>
> &gt; iff&nbsp; w |=3D r |-&gt; p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and&nbsp; xy =
> |=3D=3D r, yz |=3D p<BR>
> &gt;<BR>
> &gt; w |=3D 1 ##0 r |-&gt; p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and xy |=3D=3D =
> 1 ##0<BR>
> &gt; r, yz |=3D p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and&nbsp; xy =
> |=3D=3D r, yz |=3D p<BR>
> &gt; iff&nbsp; w |=3D r |-&gt; p<BR>
> &gt;<BR>
> &gt;<BR>
> &gt; -------------------------------<BR>
> &gt; 2007-07-05<BR>
> &gt;<BR>
> &gt; Q:&nbsp; What is the difference between<BR>
> &gt;<BR>
> &gt;&nbsp;&nbsp; 1 |-&gt; r |=3D&gt; p&nbsp; and&nbsp; 1 ##0 r |=3D&gt; =
> p<BR>
> &gt;<BR>
> &gt; ?<BR>
> &gt;<BR>
> &gt; Using old semantics of |=3D&gt; (unclocked)<BR>
> &gt; --------------------------------------<BR>
> &gt;<BR>
> &gt; Recall that neutral satisfaction is not defined for the empty =
> word.<BR>
> &gt; Let |w| &gt; 0.<BR>
> &gt;<BR>
> &gt; w |=3D 1 |-&gt; r |=3D&gt; p<BR>
> &gt; iff&nbsp; w |=3D r |=3D&gt; p<BR>
> &gt; iff&nbsp; w |=3D r ##1 1 |-&gt; p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and&nbsp; xy =
> |=3D=3D r ##1<BR>
> &gt; 1, yz |=3D p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and&nbsp; x =
> |=3D=3D r, yz |=3D p<BR>
> &gt; iff&nbsp; for all u,v s.t. w =3D uv and |v| &gt; 0 and&nbsp; u =
> |=3D=3D r, v |=3D p<BR>
> &gt;<BR>
> &gt; w |=3D 1 ##0 r |=3D&gt; p<BR>
> &gt; iff&nbsp; w |=3D (1 ##0 r) ##1 1 |-&gt; p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and xy |=3D=3D =
> (1 ##0<BR>
> &gt; r) ##1 1, yz |=3D p<BR>
> &gt; iff&nbsp; for all x,y,z s.t. w =3D xyz and |y| =3D 1 and x |=3D=3D =
> (1 ##0<BR>
> &gt; r), yz |=3D p<BR>
> &gt; iff&nbsp; for all u,v s.t. w =3D uv and |u| &gt; 0 and |v| &gt; 0 =
> and&nbsp; u<BR>
> &gt; |=3D=3D r, v |=3D p<BR>
> &gt;<BR>
> &gt; Thus, for |w| &gt; 0, the formulation<BR>
> &gt;<BR>
> &gt;&nbsp;&nbsp;&nbsp; 1 |-&gt; r |=3D&gt; p<BR>
> &gt;<BR>
> &gt; is preferable.<BR>
> &gt;<BR>
> &gt;<BR>
> &gt; Using new semantics of |=3D&gt; (unclocked)<BR>
> &gt; --------------------------------------<BR>
> &gt;<BR>
> &gt; Recall that neutral satisfaction is not defined for the empty =
> word.<BR>
> &gt; Let |w| &gt; 0.<BR>
> &gt;<BR>
> &gt; w |=3D 1 |-&gt; r |=3D&gt; p<BR>
> &gt; iff&nbsp; w |=3D r |=3D&gt; p<BR>
> &gt; iff&nbsp; [new semantics of |=3D&gt;]<BR>
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for all x,y s.t. w =3D xy and x =
> |=3D=3D r, y |=3D p<BR>
> &gt;<BR>
> &gt; There is something potentially ill-defined here, since we<BR>
> &gt; have not required<BR>
> &gt; |y| &gt; 0 when we make inductive reference to y |=3D p.<BR>
> &gt;<BR>
> &gt; w |=3D 1 ##0 r |=3D&gt; p<BR>
> &gt; iff&nbsp; [new semantics of |=3D&gt;]<BR>
> &gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for all x,y s.t. w =3D xy and x =
> |=3D=3D 1 ##0 r, y |=3D p<BR>
> &gt; iff&nbsp; for all x,y s.t. w =3D xy and |x| &gt; 0 and x |=3D=3D r, =
> y |=3D p<BR>
> &gt;<BR>
> &gt; Again, there is something potentially ill-defined here, since<BR>
> &gt; we have not<BR>
> &gt; required |y| &gt; 0 when we make inductive reference to y |=3D =
> p.<BR>
> &gt;<BR>
> &gt; Thus, for |w| &gt; 0, the formulation<BR>
> &gt;<BR>
> &gt;&nbsp;&nbsp;&nbsp; 1 |-&gt; r |=3D&gt; p<BR>
> &gt;<BR>
> &gt; is preferable.<BR>
> &gt;<BR>
> &gt;<BR>
> </FONT>
> </P>
> 
> </BODY>
> </HTML>
> ------_=_NextPart_001_01C7DE93.1A879380--

-- 
This message has been scanned for viruses and
dangerous content by MailScanner, and is
believed to be clean.
Received on Tue Aug 14 10:29:39 2007

This archive was generated by hypermail 2.1.8 : Tue Aug 14 2007 - 10:29:51 PDT