case skip.exec e₁ e₂ =>
  have ⟨z₂, a₁⟩ := Step.Apply.RTC.construct s₁ (s₁.output e₂.rcn)
  have ha₁ := e₁.indep_allows_iff h.symm |>.mpr e₂.allows_rcn
  have ht₁ := e₁.triggers_iff.mpr e₂.triggers_rcn
  let s₂' := z₂.record e₂.rcn
  let f₁ : s₁ ↓ₑ s₂' := ⟨ha₁, ht₁, a₁⟩
  have ha₂ := f₁.indep_allows_iff h |>.mp e₁.allows_rcn
  have ht₂ := f₁.indep_triggers_iff h |>.not.mp e₁.not_triggers_rcn
  let s₃' := s₂'.record e₁.rcn
  let f₂ : s₂' ↓ₛ s₃' := ⟨ha₂, ht₂⟩
  refine ⟨_, _, .exec f₁, .skip f₂, rfl, rfl, ?_⟩
  simp [e₂.dst_eq, f₂.dst_eq]
  rw [State.record_comm]
  congr!
  have a₂ := e₂.apply
  simp [e₁.dst_eq] at a₂
  exact a₁.comm_record a₂
α : Type
inst✝ : Proper α
s₁ s₂ s₃ : State α
e₁ : s₁ ↓ₛ s₂
e₂ : s₂ ↓ₑ s₃
h : rcn (skip e₁) ≮[s₁.rtr]≯ rcn (exec e₂)
⊢ ∃ s₂' s₃' e₁' e₂', rcn e₁' = rcn (exec e₂) ∧ rcn e₂' = rcn (skip e₁) ∧ s₃' = s₃
no goals