| ∀ v. (v ∈ avols1 ↔ v ∈ avols0) ∧ ( v ∈ avols1 → # avols1[v] = # avols0[v] ∧ (∀ m. m < # avols1[v] ∧ avols1[v][m] ≠ unmapped → (avols1[v][m] = erased → avols0[v][m] = erased) ∧ (avols1[v][m].mapped? → avols0[v][m] = avols1[v][m]))), ∀ 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]))) ⊦ avols0 = avols1 |
⊦ avols = avols0 ↔ (∀ v. (v ∈ avols ↔ v ∈ avols0) ∧ (v ∈ avols → avols[v] = avols0[v]))
∀ 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]))), ∀ v. (v ∈ avols1 ↔ v ∈ avols0) ∧ ( v ∈ avols1 → # avols1[v] = # avols0[v] ∧ (∀ m. m < # avols1[v] ∧ avols1[v][m] ≠ unmapped → (avols1[v][m] = erased → avols0[v][m] = erased) ∧ (avols1[v][m].mapped? → avols0[v][m] = avols1[v][m]))) ⊦ ∀ v. (v ∈ avols0 ↔ v ∈ avols1) ∧ (v ∈ avols0 → avols0[v] = avols1[v])
Used terms: avols1, avols0