| ((sk1 × val1) ' + fis0)[n] = sk × val, n ≤ # fis0, ∀ n0, sk0, val0. fis0[n0] = sk0 × val0 ∧ ¬ # fis0 ≤ n0 → (fis0 .keys)[n0] = sk0 ∨ fis0 = [] ⊦ (sk1 ' + fis0 .keys)[n] = sk |
⊦ sks ≠ [] ∧ n ≠ 0 → sks[n] = (sks .rest)[n - 1]
sk1 ' + fis0 .keys ≠ [] ∧ n ≠ 0, ((sk1 × val1) ' + fis0)[n] = sk × val, n ≤ # fis0, ∀ n0, sk0, val0. fis0[n0] = sk0 × val0 ∧ ¬ # fis0 ≤ n0 → (fis0 .keys)[n0] = sk0 ∨ fis0 = [] ⊦ ((sk1 ' + fis0 .keys) .rest)[n - 1] = sk
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : list, storekeys, app-02-ant, ⊦ ¬ sks + sks0 ≠ [] ↔ sks = [] ∧ sks0 = []], [CSIMPNAMEDSEQ : list, storekeys, e, ⊦ sk ' ≠ []], [CSIMPNAMEDSEQ : list, storekeys, a, ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1], [CSIMPNAMEDSEQ : list-del, fieldinit-assoclista, get-zero-01, ⊦ (fv ' + fis)[0] = fv], [CSIMPNAMEDSEQ : list, fieldinit-assoclista, a, ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPNAMEDSEQ : pair, fieldinit, inj, ⊦ sk × val = sk0 × val0 ↔ sk = sk0 ∧ val = val0], [CSIMPNAMEDSEQ : list-del, storekeys, get-zero-01, ⊦ (sk ' + sks)[0] = sk])], [EXTRATERMS : (n, sk1 ' + fis0 .keys)]]