| ((r1 => x.last × r2 * lls(r0, r1, x.butlast) * P))(H) ⊦ x = [], ((lls(r0, r2, x) * P))(H) |
((r1 => (a + x0).last × r2 * lls(r0, r1, (a + x0).butlast) * P))(H), ∀ r1, r2, r0, P, H. ((r1 => x0.last × r2 * lls(r0, r1, x0.butlast) * P))(H) → x0 = [] ∨ ((lls(r0, r2, x0) * P))(H) ⊦ a + x0 = [], ((lls(r0, r2, a + x0) * P))(H)
Used simplifier rules: list freely generated by [], +;;