| inv(ixs, # x0) ⊦ push(a, ixs.tolist(x0)) = pushx(# x0, ixs, x0 + a ').tolist(x0 + a ') |
[Concretesimprules((Csimpnamedseq(tolistl-base,,, ⊦ ([]).tolist(x) = []) Csimpnamedseq(push-base,,, ⊦ push(a, []) = (a + []) + []) Csimpnamedseq(pushx-base,,, ⊦ pushx(n, [], x) = (n + []) + []) Csimpnamedseq(tolistl-single,,, ⊦ (ix ').tolist(x) = (ix.tolist(x))') Csimpnamedseq(tolist-single,,, ⊦ ((# x)').tolist(x + a ') = a ') Csimpgen(illist freely generated by [], +;) Csimpnamedseq(list,,c, ⊦ a + x = a ' + x) Csimpnamedseq(list,,app, ⊦ x + [] = x) Csimpnamedseq(list,,a, ⊦ (x + y) + z = x + y + z) Csimpnamedseq(list,stackseq,c, ⊦ x0 + xs = x0 ' + xs) Csimpnamedseq(list,stackseq,app, ⊦ xs + [] = xs) Csimpnamedseq(list,stackseq,a, ⊦ (xs + xs0) + xs1 = xs + xs0 + xs1) Csimpnamedseq(list,indexseq,c, ⊦ n + ix = n ' + ix) Csimpnamedseq(list,indexseq,app, ⊦ ix + [] = ix) Csimpnamedseq(list,indexseq,a, ⊦ (ix + ix0) + ix1 = ix + ix0 + ix1) Csimpnamedseq(list,indexseq-stackseq,c, ⊦ ix + ixs = ix ' + ixs) Csimpnamedseq(list,indexseq-stackseq,app, ⊦ ixs + [] = ixs) Csimpnamedseq(list,indexseq-stackseq,a, ⊦ (ixs + ixs0) + ixs1 = ixs + ixs0 + ixs1) Csimpnamedseq(list,stackseq,c-04, ⊦ x ' = x0 ' ↔ x = x0)))]