Skip to content

Commit eaf4d7e

Browse files
committed
link operational and axiomatic semantics (todo: coinductive syntax)
1 parent c51641d commit eaf4d7e

2 files changed

Lines changed: 15 additions & 3 deletions

File tree

document/core/exec/relaxed.rst

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,18 @@ Relaxed Memory Model
1515
Traces
1616
~~~~~~
1717

18-
.. todo:: define, explain
18+
.. todo:: novel notation here?
19+
20+
A trace is a coinductive set of :ref:`events <syntax-evt>`. A trace is considered to be a *pre-execution* of a given :ref:`global configuration <syntax-config>` if it can be derived from the events emitted by the coinductive closure of the :ref:`global reduction relation <syntax-reduction>` on that configuration, and all the :ref:`time stamps <syntax-time>` of its constituent events are distinct.
21+
22+
.. math::
23+
\frac{
24+
\config \stepto^{\evt} \config' \qquad \vdash \config' : \X{tr} \qquad \F{time}(\evt) \notin \F{time}(\X{tr})
25+
}{
26+
\vdash \config : \evt~\X{tr}
27+
}
28+
29+
When a WebAssembly program is executed, all behaviours observed during that execution must correspond to a single :ref:`consistent <relaxed-consistent>` pre-execution of that execution's starting :ref:`configuration <syntax-config>`.
1930

2031

2132
.. _relaxed-consistent:

document/core/exec/runtime.rst

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -782,6 +782,7 @@ Convention
782782

783783

784784
.. index:: ! reduction, configuration, ! termination
785+
.. _syntax-reduction:
785786

786787
Reduction
787788
~~~~~~~~~
@@ -799,7 +800,7 @@ It emits a (possibly empty) set of events that are produced by the corresponding
799800
Formally, global reduction is a relation
800801

801802
.. math::
802-
\config \stepto^{\evt^\ast} \config
803+
\config \stepto^{\evt} \config
803804
804805
defined by inductive rewrite rules on global configurations.
805806

@@ -823,7 +824,7 @@ The following rule for global reduction describes the creation of a new thread b
823824
.. math::
824825
\begin{array}{@{}c@{}}
825826
S; P_1^\ast~(F; \instr^\ast \AT h)~P_2^\ast
826-
\qquad \stepto \qquad
827+
\qquad \stepto^{\epsilon~\AT~h'} \qquad
827828
S'; P_1^\ast~(F'; {\instr'}^\ast \AT h')~P_2^\ast~(\epsilon; (\HOSTE~[\epsilon]) \AT h'') \\
828829
\qquad
829830
\begin{array}[t]{@{}r@{~}l@{}}

0 commit comments

Comments
 (0)