Memory Model Definition (is acyclic)
SC $po\cup rf\cup mo \cup rb$
COH $po
RA $(po\cup rf)^+
C11 $hb

1. Declarative/Axiomatic Concurrency Semantics


<aside> 💡 Exception: “catch-fire” semantics → C/C++

Existence of at least one “bad” consistent execution implies undefined behavior.

2. Executions


Untitled

<aside> 💡 Event

An event is a triple $\langle id, i, l \rangle$ where

Label

A label has one of of the following forms:

$$ Rx~v_r,~Wx~v_w,~U(x~v_r~v_w),~F $$

where $x ∈ Loc$ and $v_r , v_w ∈ Val$.

</aside>

<aside> 💡 Execution Graph

An execution graph is a tuple 〈 E, po, rf 〉 where:

3. Mapping Programs to Executions


Definition

The thread subsystem associates a sequential execution graph to every command.