(re a b)/\(re a c) (e a a) (e b b) (e c c) (re a a) (re b b) (re c c) stack pushed, stack: (e a b) \/ (r a b) :: nil stack top tailed: (e a b) (e b a) (re b c) valid, stack: (r a b) :: nil stack popped: (r a b) stack pushed, stack: (e a c) \/ (r a c) :: nil stack top tailed: (e a c) (e c a) (re c b) valid, stack: (r a c) :: nil stack popped: (r a c) (r b C0)/\(r b C0) (e C0 C0) (re C0 C0) (re b C0) (r b C1)/\(r c C1) (e C1 C1) (re C1 C1) (re b C1) (re c C1) valid, stack: nil