intro p1
ts1 ts2 ts3 : TStack
⊢ ∀ (p1 : TProg ts1 ts2) (p2 : TProg ts2 ts3) (s : VStack ts1),
    TProg.denote (concat p1 p2) s = TProg.denote p2 (TProg.denote p1 s)
ts1 ts2 ts3 : TStack
p1 : TProg ts1 ts2
⊢ ∀ (p2 : TProg ts2 ts3) (s : VStack ts1), TProg.denote (concat p1 p2) s = TProg.denote p2 (TProg.denote p1 s)