induction eₒ generalizing s₁ <;> cases e₁ₒ
α : Type
inst✝ : Proper α
s s₁ s₂ s₁₂ s₂₁ : State α
c : Change
out out₁ out₂ : Reaction.Output
sₒ sₒ₁ s₁ₒ : State α
ht : ∀ {t : Component.Valued × ID}, Change.target c = some t → t ∉ Reaction.Output.targets out
eₒ : s -[out]→ sₒ
eₒ₁ : sₒ -[c]→ sₒ₁
e₁ : s -[c]→ s₁
e₁ₒ : s₁ -[out]→ s₁ₒ
⊢ sₒ₁ = s₁ₒ
case refl.refl
α : Type
inst✝ : Proper α
s s₂ s₁₂ s₂₁ : State α
c : Change
out out₁ out₂ : Reaction.Output
sₒ sₒ₁ s₁ₒ s✝ : State α
ht : ∀ {t : Component.Valued × ID}, Change.target c = some t → t ∉ Reaction.Output.targets []
eₒ₁ : s✝ -[c]→ sₒ₁
e₁ : s✝ -[c]→ s₁ₒ
⊢ sₒ₁ = s₁ₒ

case trans.trans
α : 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 α
a✝³ : s₁✝ -[hd✝]→ s₂✝¹
a✝² : s₂✝¹ -[tl✝]→ s₃✝
a_ih✝ :
  ∀ {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 α
a✝¹ : s₁ -[hd✝]→ s₂✝
a✝ : s₂✝ -[tl✝]→ s₁ₒ
⊢ sₒ₁ = s₁ₒ