Skip to content

Commit be7006e

Browse files
committed
add evt to soundness statement
1 parent 0bb5671 commit be7006e

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

document/core/appendix/properties.rst

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -828,7 +828,7 @@ the standard soundness theorems hold. [#cite-cpp2018]_ [#cite-fm2021]_
828828

829829
**Theorem (Preservation).**
830830
If a :ref:`configuration <syntax-config>` :math:`S;P^\ast` is :ref:`valid <valid-config>` with :ref:`result type <syntax-resulttype>` :math:`[t^\ast]^\ast` (i.e., :math:`\vdashconfig S;P^\ast : [t^\ast]^\ast`),
831-
and steps to :math:`S';P'^\ast` (i.e., :math:`S;P^\ast \stepto S';P'^\ast`),
831+
and steps to :math:`S';P'^\ast` (i.e., :math:`S;P^\ast \stepto^{\evt} S';P'^\ast`),
832832
then :math:`S';P'^\ast` is a valid configuration with the same result type (i.e., :math:`\vdashconfig S';P'^\ast : [t^\ast]^\ast`).
833833
Furthermore, :math:`S'` is an :ref:`extension <extend-store>` of :math:`S` (i.e., :math:`\vdashstoreextends S \extendsto S'`).
834834

@@ -838,13 +838,13 @@ A terminal configuration is a configuration whose threads are all terminal.
838838
**Theorem (Progress).**
839839
If a :ref:`configuration <syntax-config>` :math:`S;P^\ast` is :ref:`valid <valid-config>` (i.e., :math:`\vdashconfig S;P^\ast : [t^\ast]^\ast` for some :ref:`result type <syntax-resulttype>` :math:`[t^\ast]^\ast`),
840840
then either it is terminal,
841-
or it can step to some configuration :math:`S';P'^\ast` (i.e., :math:`S;P^\ast \stepto S';P'^\ast`).
841+
or it can step to some configuration :math:`S';P'^\ast` (i.e., :math:`S;P^\ast \stepto^{\evt} S';P'^\ast`).
842842

843843
From Preservation and Progress the soundness of the WebAssembly type system follows directly.
844844

845845
**Corollary (Soundness).**
846846
If a :ref:`configuration <syntax-config>` :math:`S;P^\ast` is :ref:`valid <valid-config>` (i.e., :math:`\vdashconfig S;P^\ast : [t^\ast]^\ast` for some :ref:`result type <syntax-resulttype>` :math:`[t^\ast]^\ast`),
847-
then it either diverges or takes a finite number of steps to reach a terminal configuration :math:`S';P'^\ast` (i.e., :math:`S;P^\ast \stepto^\ast S';P'^\ast`) that is valid with the same result type (i.e., :math:`\vdashconfig S';P'^\ast : [t^\ast]^\ast`)
847+
then it either diverges or takes a finite number of steps to reach a terminal configuration :math:`S';P'^\ast` (i.e., :math:`S;P^\ast \stepto^{\ast~(\evt^\ast)} S';P'^\ast`) that is valid with the same result type (i.e., :math:`\vdashconfig S';P'^\ast : [t^\ast]^\ast`)
848848
and where :math:`S'` is an :ref:`extension <extend-store>` of :math:`S` (i.e., :math:`\vdashstoreextends S \extendsto S'`).
849849

850850
In other words, every thread in a valid configuration either runs forever, traps, or terminates with a result that has the expected type.

0 commit comments

Comments
 (0)