| ixs = [], precedes∃(ixs + ix ', x), inv(ixs + ix ', # x), n ∈ ix, ∀ ixs0, n, ix, x. # ixs0 < # ixs → n ∈ ix ∧ inv(ixs0 + ix ', # x) ∧ precedes∃(ixs0 + ix ', x) → (∃ ix0. # ix0 = # ixs0 ∧ ascsubseq(ix0 + n ', x)) ⊦ ∃ ix0. # ix0 = # ixs ∧ ascsubseq(ix0 + n ', x) |
[Concretesimprules((Csimpnamedseq(precedesex-rec0,,, ⊦ precedes∃(ix ', x)) Csimpnamedseq(ascsubseq-single,,, ⊦ ascsubseq(n ', x) ↔ n < # x) Csimpnamedseq(nat,,lels, ⊦ ¬ m < n ↔ n ≤ m) Csimpnamedseq(list,indexseq,a, ⊦ (ix + ix0) + ix1 = ix + ix0 + ix1) Csimpnamedseq(list,indexseq,Nil, ⊦ [] + ix = ix) Csimpnamedseq(list-data,indexseq,l, ⊦ # ix = 0 ↔ ix = []) Csimpnamedseq(list-data,indexseq-stackseq,size-01, ⊦ # [] = 0) Csimpnamedseq(list,indexseq-stackseq,a, ⊦ (ixs + ixs0) + ixs1 = ixs + ixs0 + ixs1) Csimpnamedseq(list,indexseq-stackseq,Nil, ⊦ [] + ixs = ixs)))]