intros H
α₁ σ₁ : Type
ε₁ : σ₁ → Type
δ₁ : Dialect α₁ σ₁ ε₁
α₂ σ₂ : Type
ε₂ : σ₂ → Type
δ₂ : Dialect α₂ σ₂ ε₂
α σ : Type
ε : σ → Type
δ : Dialect α σ ε
argsHead : TypedArg δ
argsTail : TypedArgs δ
vals : List SSAVal
env : SSAEnv δ
res : Unit
env' : SSAEnv δ
⊢ denoteTypedArgs (argsHead :: argsTail) vals env = Except.ok (res, env') →
    ∃ valHead valTail,
      vals = valHead :: valTail ∧
        TopM.set argsHead.fst valHead argsHead.snd env =
            Except.ok ((), SSAEnv.set valHead argsHead.fst argsHead.snd env) ∧
          denoteTypedArgs argsTail valTail (SSAEnv.set valHead argsHead.fst argsHead.snd env) = Except.ok ((), env')
α₁ σ₁ : Type
ε₁ : σ₁ → Type
δ₁ : Dialect α₁ σ₁ ε₁
α₂ σ₂ : Type
ε₂ : σ₂ → Type
δ₂ : Dialect α₂ σ₂ ε₂
α σ : Type
ε : σ → Type
δ : Dialect α σ ε
argsHead : TypedArg δ
argsTail : TypedArgs δ
vals : List SSAVal
env : SSAEnv δ
res : Unit
env' : SSAEnv δ
H : denoteTypedArgs (argsHead :: argsTail) vals env = Except.ok (res, env')
⊢ ∃ valHead valTail,
    vals = valHead :: valTail ∧
      TopM.set argsHead.fst valHead argsHead.snd env =
          Except.ok ((), SSAEnv.set valHead argsHead.fst argsHead.snd env) ∧
        denoteTypedArgs argsTail valTail (SSAEnv.set valHead argsHead.fst argsHead.snd env) = Except.ok ((), env')