.. index:: validation
| Construct | Judgement |
|---|---|
| :ref:`Limits <valid-limits>` | \vdashlimits \limits : k |
| :ref:`Function type <valid-functype>` | \vdashfunctype \functype \ok |
| :ref:`Block type <valid-blocktype>` | \vdashblocktype \blocktype \ok |
| :ref:`Table type <valid-tabletype>` | \vdashtabletype \tabletype \ok |
| :ref:`Memory type <valid-memtype>` | \vdashmemtype \memtype \ok |
| :ref:`Global type <valid-globaltype>` | \vdashglobaltype \globaltype \ok |
| :ref:`External type <valid-externtype>` | \vdashexterntype \externtype \ok |
| :ref:`Instruction <valid-instr>` | S;C \vdashinstr \instr : \stacktype |
| :ref:`Instruction sequence <valid-instr-seq>` | S;C \vdashinstrseq \instr^\ast : \stacktype |
| :ref:`Expression <valid-expr>` | C \vdashexpr \expr : \resulttype |
| :ref:`Function <valid-func>` | C \vdashfunc \func : \functype |
| :ref:`Table <valid-table>` | C \vdashtable \table : \tabletype |
| :ref:`Memory <valid-mem>` | C \vdashmem \mem : \memtype |
| :ref:`Global <valid-global>` | C \vdashglobal \global : \globaltype |
| :ref:`Element segment <valid-elem>` | C \vdashelem \elem : \reftype |
| :ref:`Element mode <valid-elemmode>` | C \vdashelemmode \elemmode : \reftype |
| :ref:`Data segment <valid-data>` | C \vdashdata \data \ok |
| :ref:`Data mode <valid-datamode>` | C \vdashdatamode \datamode \ok |
| :ref:`Start function <valid-start>` | C \vdashstart \start \ok |
| :ref:`Export <valid-export>` | C \vdashexport \export : \externtype |
| :ref:`Export description <valid-exportdesc>` | C \vdashexportdesc \exportdesc : \externtype |
| :ref:`Import <valid-import>` | C \vdashimport \import : \externtype |
| :ref:`Import description <valid-importdesc>` | C \vdashimportdesc \importdesc : \externtype |
| :ref:`Module <valid-module>` | \vdashmodule \module : \externtype^\ast \to \externtype^\ast |
.. index:: runtime
| Construct | Judgement |
|---|---|
| :ref:`Value <valid-val>` | S \vdashval \val : \valtype |
| :ref:`Result <valid-result>` | S \vdashresult \result : \resulttype |
| :ref:`External value <valid-externval>` | S \vdashexternval \externval : \externtype |
| :ref:`Function instance <valid-funcinst>` | S \vdashfuncinst \funcinst : \functype |
| :ref:`Table instance <valid-tableinst>` | S \vdashtableinst \tableinst : \tabletype |
| :ref:`Memory instance <valid-meminst>` | S \vdashmeminst \meminst : \memtype |
| :ref:`Global instance <valid-globalinst>` | S \vdashglobalinst \globalinst : \globaltype |
| :ref:`Element instance <valid-eleminst>` | S \vdasheleminst \eleminst \ok |
| :ref:`Data instance <valid-datainst>` | S \vdashdatainst \datainst \ok |
| :ref:`Export instance <valid-exportinst>` | S \vdashexportinst \exportinst \ok |
| :ref:`Module instance <valid-moduleinst>` | S \vdashmoduleinst \moduleinst : C |
| :ref:`Store <valid-store>` | \vdashstore \store \ok |
| :ref:`Configuration <valid-config>` | \vdashconfig \config \ok |
| :ref:`Thread <valid-thread>` | S;\resulttype^? \vdashthread \thread : \resulttype |
| :ref:`Frame <valid-frame>` | S \vdashframe \frame : C |
| Construct | Judgement |
|---|---|
| :ref:`Constant expression <valid-constant>` | C \vdashexprconst \expr \const |
| :ref:`Constant instruction <valid-constant>` | C \vdashinstrconst \instr \const |
| Construct | Judgement |
|---|---|
| :ref:`External type <match-externtype>` | \vdashexterntypematch \externtype_1 \matchesexterntype \externtype_2 |
| :ref:`Limits <match-limits>` | \vdashlimitsmatch \limits_1 \matcheslimits \limits_2 |
| Construct | Judgement |
|---|---|
| :ref:`Function instance <extend-funcinst>` | \vdashfuncinstextends \funcinst_1 \extendsto \funcinst_2 |
| :ref:`Table instance <extend-tableinst>` | \vdashtableinstextends \tableinst_1 \extendsto \tableinst_2 |
| :ref:`Memory instance <extend-meminst>` | \vdashmeminstextends \meminst_1 \extendsto \meminst_2 |
| :ref:`Global instance <extend-globalinst>` | \vdashglobalinstextends \globalinst_1 \extendsto \globalinst_2 |
| :ref:`Element instance <extend-eleminst>` | \vdasheleminstextends \eleminst_1 \extendsto \eleminst_2 |
| :ref:`Data instance <extend-datainst>` | \vdashdatainstextends \datainst_1 \extendsto \datainst_2 |
| :ref:`Store <extend-store>` | \vdashstoreextends \store_1 \extendsto \store_2 |
| Construct | Judgement |
|---|---|
| :ref:`Instruction <exec-instr>` | S;F;\instr^\ast \stepto S';F';{\instr'}^\ast |
| :ref:`Expression <exec-expr>` | S;F;\expr \stepto S';F';\expr' |