| # avols1[v] = # avols0[v], v ∈ avols0, v ∈ avols1, ∀ m. m < # avols0[v] ∧ avols1[v][m] ≠ unmapped → (avols1[v][m] = erased → avols0[v][m] = erased) ∧ (avols1[v][m].mapped? → avols0[v][m] = avols1[v][m]), ∀ m. m < # avols0[v] ∧ avols0[v][m] ≠ unmapped → (avols0[v][m] = erased → avols1[v][m] = erased) ∧ (avols0[v][m].mapped? → avols1[v][m] = avols0[v][m]) ⊦ avols0[v] = avols1[v] |
⊦ evol = evol0 ↔ # evol = # evol0 ∧ (∀ n. n < # evol → evol[n] = evol0[n])
# avols1[v] = # avols0[v], v ∈ avols1, v ∈ avols0, ∀ m. m < # avols0[v] ∧ avols0[v][m] ≠ unmapped → (avols0[v][m] = erased → avols1[v][m] = erased) ∧ (avols0[v][m].mapped? → avols1[v][m] = avols0[v][m]), ∀ m. m < # avols0[v] ∧ avols1[v][m] ≠ unmapped → (avols1[v][m] = erased → avols0[v][m] = erased) ∧ (avols1[v][m].mapped? → avols0[v][m] = avols1[v][m]) ⊦ # avols0[v] = # avols1[v] ∧ (∀ n. n < # avols0[v] → avols0[v][n] = avols1[v][n])
Used terms: avols1[v], avols0[v]