-
$\vdash$ declares an assertions entails another. - If anything entails an assertion, the assertion is valid (e.g
$\vdash True$ ). -
$\vDash$ declares the assertions are valid given a [[Logical Environment]], [[Variable Store]] and [[Heap]]
Logical expressions have a similar syntax, assertions include the following: $$\begin{matrix*}[r r r l l] P \in Assert & ::= && P \land P \ | \ P \Rightarrow P \ | \ True \ | \ False \ && | & E=E \ | \ E > E \ | \ E \in X \ | \ \dots \ && | & \exists x . P \ && | & P \star P \ | \ P \mathrlap{\rightarrow} \ \star P \ | \ emp \ | \ \mathrlap{\bigcirc} * \ {E_1 \leq x < E_2} P \ && | & E \mapsto E \ \end{matrix*}$$ A $LEnv \triangleq LVar \rightharpoonup{fin} LVal$ logical environment maps logical variables just like regular variables from the [[Variable Store]].
- Includes the [[Heap#Cell Assertion|cell assertion]]