(** * Trace erasure preserves spinlock clean and well-synchronized*)
From mathcomp.ssreflect Require Import ssreflect ssrbool ssrnat ssrfun eqtype seq fintype finfun.
Set Implicit Arguments.
(*NOTE: because of redefinition of [val], these imports must appear after Ssreflect eqtype.*)
Set Bullet Behavior "None".
Set Bullet Behavior "Strict Subproofs".
Module SpinLocksSC.
Open Scope nat.

Lemma event_erasure_competes:
forall ev1 ev2 ev1' ev2'
(Herasure1: event_erasure ev1 ev1')
(Herasure2: event_erasure ev2 ev2'),
competes ev1' ev2' ->
competes ev1 ev2.