| p ⊑ q0 ⊦ restn(# p, q0 + q1) = restn(# p, q0) + q1 |
str + p0 ⊑ q0, ∀ q0, q1. p0 ⊑ q0 → restn(# p0, q0 + q1) = restn(# p0, q0) + q1 ⊦ restn(#(str + p0), q0 + q1) = restn(#(str + p0), q0) + q1
Used simplifier rules: path freely generated by ε, +;;% ⊦ # ε = 0; (s)% ⊦ restn(0, p) = p; (s)% ⊦ p + p0 = p + p1 ↔ p0 = p1; (s)%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]