X86 TSO
include "x86fences.cat"
include "filters.cat"
include "cos.cat"
let com = rf | fr | co
acyclic po-loc | com
empty rmw & (fre;coe)
let po_ghb = WW(po) | RM(po)
include "x86fences.cat"
let poWR = WR(po)
let i1 = MA(poWR)
let i2 = AM(poWR)
let implied = i1 | i2
let ghb = mfence | implied | po_ghb | rfe | fr | co
show implied
acyclic ghb
as tso