Conventions when talking about a generic language (= an instance of the
language or mlanguage interface), or when defining a specific language (is
in ml_lang/lang.v or c_lang/lang.v).
v,vs: value, list of valuese: expressionσ: state/heapK,C: evaluation context / continuationp: program (has typelang_progormlang_prog)Λ: language (has typelanguage ?valormlanguage ?val)X: set of "next states" after a step in the semantics (has typeexpr * ?state → Prop)fn: function name (has typestring)
Conventions followed in interop/ and files importing interop/ (i.e anything
multi-language), starting from interop/basics.v.
prm: FFI primitive name (has typeprim)
v,vs: ML value, list of values (have typeval)ℓ: ML location (has typeloc)σ: ML state/heap (has typestore)
w,ws: C value, list of values (have typeword)a: C address (has typeaddr)mem: C state/heap (has typememory)
lv,lvs: block-level value, list of values (have typelval)γ: block-level location (has typelloc)blk, (sometimesb): block (has typeblock)ρ: entire state of the FFI semanticsρml,ρc: private state of the FFI semantics, on the ML/C side respectivelyζ: block heap (has typelstore)χ: map of block-level locations to ML locations (has typelloc_map)θ: map of block-level locations to C addresses (has typeaddr_map)
(TODO: in some places v/V is used instead of lv/v; these should be
updated...)
Ψ: "protocol" (i.e spec for external calls) (has typeprotocol ?val ?Σ)
(see also the Iris naming conventions)
P,Q: Iris assertions (of typeiProp ?Σ)Φ: post-condition or general Iris predicate (of type?A → iProp ?Σ)E: mask of fancy update or WPΣ: global camera functor management (of typegFunctors)