| getarray(r, i, i2 + 1, st) .rest = getarray(r, i + 1, i2, st), getarray(r, i, 1 + i2, st) + st[r -- (1 + i + i2) '] ' = val ' + vals, 0 ≤ i2, 0 < i2, ∀ i1, r, i, st. i→n(i1) < i→n(i2 + 1) → (0 ≤ i1 → getarray(r, i, i1 + 1, st) .rest = getarray(r, i + 1, i1, st)) ⊦ vals = getarray(r, i + 1, i2, st) + st[r -- (i + i2 + 1) '] ', ¬ st[r -- (1 + i + i2) '] ∈ vals ∧ st[r -- (1 + i + i2) '] ≠ val, val ≠ st[r -- (1 + i + i2) '] ∧ ¬ val ∈ getarray(r, i, 1 + i2, st) |
vals ≠ [] ⊦ vals + vals0 = val ' + vals1 ↔ val = vals .first ∧ vals1 = vals .rest + vals0
⊦ getarray(r, i, j, st) = [] ↔ j ≤ 0
⊦ getarray(r, i, j, st) = [] ↔ j ≤ 0
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ i < j → ¬ j < i], [CSIMPSEQ : ⊦ i + j = j + i], [CSIMPSEQ : ⊦ i + j + i0 = (i + j) + i0], [CSIMPSEQ : ⊦ vals + vals0 = vals1 + vals0 ↔ vals = vals1], [CSIMPSEQ : ⊦ (vals + vals0) + vals1 = vals + vals0 + vals1], [CSIMPSEQ : ⊦ i + ((* j)) ≤ ((* j0)) ↔ i ≤ j0 - j], [CSIMPSEQ : ⊦ i ≤ (~1) ↔ i < 0], [CSIMPSEQ : ⊦ i < i0 → (¬ i0 < i ↔ true)], [CSIMPSEQ : ⊦ val ∈ vals + vals0 ↔ ¬ ¬ (val ∈ vals ∨ val ∈ vals0)], [CSIMPSEQ : ⊦ val ∈ val0 ' ↔ val = val0], [CSIMPSEQ : ⊦ vals .first ∈ vals ↔ vals ≠ []])], [EXTRATERMS : (vals, val, st[r -- (1 + i + i2) '] ', getarray(r, i, 1 + i2, st))]]