| # avols[v] = # avols0[v], m < # avols0[v], m0 < # avols0[v], ebm-cons(avols), ebm-cons(avols0), v ∈ avols, v ∈ avols0, ∀ m. m < # avols0[v] ∧ avols[v][m] ≠ unmapped → (avols[v][m] = erased → avols0[v][m] = erased) ∧ (avols[v][m].mapped? → avols0[v][m] = avols[v][m]) ⊦ avols[v][m, unmapped][m0] = unmapped, m0 = m, (avols[v][m0] = erased → avols0[v][m0] = erased) ∧ (avols[v][m0].mapped? → avols0[v][m0] = avols[v][m0]) |
# avols[v] = # avols0[v], m0 < # avols0[v], m < # avols0[v], ebm-cons(avols0), ebm-cons(avols), v ∈ avols0, v ∈ avols, ∀ m. m < # avols0[v] ∧ avols[v][m] ≠ unmapped → (avols[v][m] = erased → avols0[v][m] = erased) ∧ (avols[v][m].mapped? → avols0[v][m] = avols[v][m]) ⊦ avols[v][m0] = unmapped, m0 = m, (avols[v][m0] = erased → avols0[v][m0] = erased) ∧ (avols[v][m0].mapped? → avols0[v][m0] = avols[v][m0])
Used simplifier rules: ⊦ m ≠ n → evol[n, leb][m] = evol[m]; (s)