cases Apply.ne_target_comm h eₒ e' e₁ e₁ₒ
α : Type
inst✝ : Proper α
s s₂ s₁₂ s₂₁ : State α
c : Change
out out₁ out₂ : Reaction.Output
sₒ sₒ₁ s₁ₒ : State α
hd : Change
s₁✝ s' : State α
tl : Reaction.Output
s₃✝ : State α
eₒ : s₁✝ -[hd]→ s'
a✝ : s' -[tl]→ s₃✝
hi :
  ∀ {s₁ : State α},
    (∀ {t : Component.Valued × ID}, Change.target c = some t → t ∉ Reaction.Output.targets tl) →
      s₃✝ -[c]→ sₒ₁ → s' -[c]→ s₁ → s₁ -[tl]→ s₁ₒ → sₒ₁ = s₁ₒ
s₁ : State α
ht : ∀ {t : Component.Valued × ID}, Change.target c = some t → t ∉ Reaction.Output.targets (hd :: tl)
eₒ₁ : s₃✝ -[c]→ sₒ₁
e₁ : s₁✝ -[c]→ s₁
s₂✝ : State α
e₁ₒ : s₁ -[hd]→ s₂✝
e₁ₒ' : s₂✝ -[tl]→ s₁ₒ
h : Change.target hd ≠ Change.target c ∨ Change.target hd = none
fst✝ : State α
e' : s' -[c]→ fst✝
⊢ sₒ₁ = s₁ₒ
case refl
α : Type
inst✝ : Proper α
s s₂ s₁₂ s₂₁ : State α
c : Change
out out₁ out₂ : Reaction.Output
sₒ sₒ₁ s₁ₒ : State α
hd : Change
s₁✝ s' : State α
tl : Reaction.Output
s₃✝ : State α
eₒ : s₁✝ -[hd]→ s'
a✝ : s' -[tl]→ s₃✝
hi :
  ∀ {s₁ : State α},
    (∀ {t : Component.Valued × ID}, Change.target c = some t → t ∉ Reaction.Output.targets tl) →
      s₃✝ -[c]→ sₒ₁ → s' -[c]→ s₁ → s₁ -[tl]→ s₁ₒ → sₒ₁ = s₁ₒ
s₁ : State α
ht : ∀ {t : Component.Valued × ID}, Change.target c = some t → t ∉ Reaction.Output.targets (hd :: tl)
eₒ₁ : s₃✝ -[c]→ sₒ₁
e₁ : s₁✝ -[c]→ s₁
s₂✝ : State α
e₁ₒ : s₁ -[hd]→ s₂✝
e₁ₒ' : s₂✝ -[tl]→ s₁ₒ
h : Change.target hd ≠ Change.target c ∨ Change.target hd = none
e' : s' -[c]→ s₂✝
⊢ sₒ₁ = s₁ₒ