cases δ_in
γ : Program
δ : List Program
γ_in : γ ∈ δ
α β : Program
ℓ : TP (α;'β)
δ_in :
  (∃ a ∈ List.filter (fun x => x != []) (P α fun τ => ℓ ⟨↑τ, ⋯⟩), a ++ [β] = δ) ∨
    δ ∈ if [] ∈ P α fun τ => ℓ ⟨↑τ, ⋯⟩ then P β fun τ => ℓ ⟨↑τ, ⋯⟩ else []
⊢ lengthOfProgram γ < 1 + lengthOfProgram α + lengthOfProgram β
case inl
γ : Program
δ : List Program
γ_in : γ ∈ δ
α β : Program
ℓ : TP (α;'β)
h✝ : ∃ a ∈ List.filter (fun x => x != []) (P α fun τ => ℓ ⟨↑τ, ⋯⟩), a ++ [β] = δ
⊢ lengthOfProgram γ < 1 + lengthOfProgram α + lengthOfProgram β

case inr
γ : Program
δ : List Program
γ_in : γ ∈ δ
α β : Program
ℓ : TP (α;'β)
h✝ : δ ∈ if [] ∈ P α fun τ => ℓ ⟨↑τ, ⋯⟩ then P β fun τ => ℓ ⟨↑τ, ⋯⟩ else []
⊢ lengthOfProgram γ < 1 + lengthOfProgram α + lengthOfProgram β