[spec] Specify that host call results must not be empty
diff --git a/document/core/exec/instructions.rst b/document/core/exec/instructions.rst index a4da2bc..7b37f2b 100644 --- a/document/core/exec/instructions.rst +++ b/document/core/exec/instructions.rst
@@ -384,7 +384,7 @@ $${rule: Step_pure/frame-vals} -.. index:: host function, store +.. index:: host function, store, non-determinism .. _exec-invoke-host: Host Functions @@ -404,7 +404,8 @@ Here, ${:$hostcall(_HOSTFUNC hf, s, val^n)} denotes the implementation-defined execution of host function ${:hf} in current store ${:s} with arguments ${:val^n}. It yields a set of possible outcomes, where each element is either a pair of a modified store ${:s'} and a :ref:`result <syntax-result>` or the special value ${hostcallresult:BOT} indicating divergence. -A host function is non-deterministic if there is at least one argument for which the set of outcomes is not singular. +This set must not be empty. +A host function is *non-deterministic* if there is at least one argument pair for which the set of outcomes is not singular. For a WebAssembly implementation to be :ref:`sound <soundness>` in the presence of host functions, every :ref:`host function instance <syntax-funcinst>` must be :ref:`valid <valid-hostfuncinst>`,