| n < # x ⊦ pushx(n, ixs0, x) = ixs0 + n ' ', x = [], ∃ m. m < # ixs0 ∧ pushx(n, ixs0, x) = ixs0[m, n ' + ixs0[m]] |
[Concretesimprules((Csimpnamedseq(pushx-base,,, ⊦ pushx(n, [], x) = (n + []) + []) Csimpgen(illist freely generated by [], +;) 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,indexseq-stackseq,Nil, ⊦ [] + ixs = ixs) Csimpnamedseq(list,indexseq-stackseq,c-04, ⊦ ix ' = ix0 ' ↔ ix = ix0)))]