| ⊦ ( ( ctrok(gs.fctr, gs.fwriters) ∧ writersOk(gs.bq, gs.pq, gs.fwriters) ∧ pendingOk(gs.bq, gs.pq) ∧ SFTrailing(gs.bq) ∧ readFOsOk(gs.rfo, gs.fwriters)) ∧ notMember(ls.t, gs.freaders) ∧ notMember(ls.t, gs.fwriters) ∧ noPendingW(ls.t, gs.bq, gs.pq) ∧ ¬ SF ∈ gs.bq(ls.t) ∧ gs.rfo(ls.t) = gs.bq(ls.t)) ∧ pre(gs, ls, W1, a) ∧ pcstepf(gs, ls, W1, a) = W2 → ( ctrok(gstepf(gs, ls, W1, a).fctr, gstepf(gs, ls, W1, a).fwriters) ∧ writersOk(gstepf(gs, ls, W1, a).bq, gstepf(gs, ls, W1, a).pq, gstepf(gs, ls, W1, a).fwriters) ∧ pendingOk(gstepf(gs, ls, W1, a).bq, gstepf(gs, ls, W1, a).pq) ∧ SFTrailing(gstepf(gs, ls, W1, a).bq) ∧ readFOsOk(gstepf(gs, ls, W1, a).rfo, gstepf(gs, ls, W1, a).fwriters)) ∧ notMember(lstepf(gs, ls, W1, a).t, gstepf(gs, ls, W1, a).freaders) ∧ notMember(lstepf(gs, ls, W1, a).t, gstepf(gs, ls, W1, a).fwriters) ∧ noPendingW(lstepf(gs, ls, W1, a).t, gstepf(gs, ls, W1, a).bq, gstepf(gs, ls, W1, a).pq) ∧ ( gstepf(gs, ls, W1, a).rfo(lstepf(gs, ls, W1, a).t) = gstepf(gs, ls, W1, a).bq(lstepf(gs, ls, W1, a).t) ∨ gstepf(gs, ls, W1, a).rfo(lstepf(gs, ls, W1, a).t) + SF ' = gstepf(gs, ls, W1, a).bq(lstepf(gs, ls, W1, a).t)) |