| v ∈ avols0, ∀ v. (v ∈ avols0 ↔ v ∈ avols1) ∧ ( v ∈ avols0 → # avols0[v] = # avols1[v] ∧ (∀ 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]))) ⊦ v0 = v, (v0 ∈ avols0[v, avols0[v][m, leb]] ↔ v0 ∈ avols1[v, avols1[v][m, leb]]) ∧ ( v0 ∈ avols0[v, avols0[v][m, leb]] → # avols0[v, avols0[v][m, leb]][v0] = # avols1[v, avols1[v][m, leb]][v0] ∧ ( m0 < # avols0[v, avols0[v][m, leb]][v0] ∧ avols0[v, avols0[v][m, leb]][v0][m0] ≠ unmapped → (avols0[v, avols0[v][m, leb]][v0][m0] = erased → avols1[v, avols1[v][m, leb]][v0][m0] = erased) ∧ (avols0[v, avols0[v][m, leb]][v0][m0].mapped? → avols1[v, avols1[v][m, leb]][v0][m0] = avols0[v, avols0[v][m, leb]][v0][m0]))) |
v ∈ avols0, ∀ v. (v ∈ avols0 ↔ v ∈ avols1) ∧ ( v ∈ avols0 → # avols0[v] = # avols1[v] ∧ (∀ 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]))) ⊦ v0 = v, (v0 ∈ avols0 ↔ v0 ∈ avols1) ∧ ( v0 ∈ avols0 → # avols0[v0] = # avols1[v0] ∧ ( m0 < # avols0[v0] ∧ avols0[v0][m0] ≠ unmapped → (avols0[v0][m0] = erased → avols1[v0][m0] = erased) ∧ (avols0[v0][m0].mapped? → avols1[v0][m0] = avols0[v0][m0])))
Used simplifier rules: ⊦ v ≠ v0 → avols[v0, evol][v] = avols[v]; (s)% ⊦ v ≠ v0 → (v ∈ avols[v0, evol] ↔ v ∈ avols); (s)