| m2 < # ar1 ∧ ¬ bv0, bv0 ⊃ (ar1[m1] = ar1[n2] ∧ ar[m1] ≠ a1 ∧ m1 ≠ n2 ∧ m1 < # ar1 ∧ n2 < # ar1) ; (∀ m1. m1 < m2 → (∀ n. m1 < n ∧ n < # ar1 → ar1[m1] ≠ ar1[n] ∨ ar[m1] = a1)), m2 ≤ # ar1, ar1 = ar, a1 = a, ∃ m, n. ar1[m] = ar1[n] ∧ ar[m] ≠ a1 ∧ m ≠ n ∧ m < # ar1 ∧ n < # ar1, m2 = m0, n = m2 + 1 ⊦ ⦉while n < # ar1 ∧ ¬ bv0 do if ar1[m2] = ar1[n] ∧ ar1[m2] ≠ a1 then m1 := m2, n2 := n, bv0 := true else n := n + 1⦊ ⦉m2 := m2 + 1⦊ ( (bv0 ⊃ (ar1[m1] = ar1[n2] ∧ ar[m1] ≠ a1 ∧ m1 ≠ n2 ∧ m1 < # ar1 ∧ n2 < # ar1) ; (∀ m1. m1 < m2 → (∀ n. m1 < n ∧ n < # ar1 → ar1[m1] ≠ ar1[n] ∨ ar[m1] = a1)) ) ∧ m2 ≤ # ar1 ∧ ar1 = ar ∧ a1 = a ∧ (∃ m, n. ar1[m] = ar1[n] ∧ ar[m] ≠ a1 ∧ m ≠ n ∧ m < # ar1 ∧ n < # ar1) ∧ # ar - m2 < # ar - m0) |
m2 = m0, n = m0 + 1, ar[m] = ar[n0], ¬ bv0, ar1 = ar, a1 = a, ar[n0] ≠ a, m ≠ n0, n0 < # ar, m < # ar, m0 < # ar, ∀ m1. m1 < m0 → (∀ n. m1 < n ∧ n < # ar → ar[m1] ≠ ar[n] ∨ ar[m1] = a) ⊦ ⦉while n < # ar1 ∧ ¬ bv0 do if ar1[m2] = ar1[n] ∧ ar1[m2] ≠ a1 then m1 := m2, n2 := n, bv0 := true else n := n + 1⦊ ⦉m2 := m2 + 1⦊ ( (bv0 ⊃ (ar[m1] = ar[n2] ∧ ar[m1] ≠ a ∧ m1 ≠ n2 ∧ m1 < # ar ∧ n2 < # ar) ; (∀ m1. m1 < m2 → (∀ n. m1 < n ∧ n < # ar → ar[m1] ≠ ar[n] ∨ ar[m1] = a)) ) ∧ m2 ≤ # ar ∧ (∃ m, n. ar1[m] = ar1[n] ∧ ar[m] ≠ a1 ∧ m ≠ n ∧ m < # ar1 ∧ n < # ar1) ∧ ¬ m2 ≤ m0)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ m + 1 ≤ n ↔ m < n], [CSIMPFORWARD : ⊦ m < n ∧ m = n0 → n0 < n], [CSIMPFORWARD : ⊦ m = n + 1 ∧ n < n0 → m ≤ n0], [CSIMPSEQ : ⊦ m + n = n + m], [CSIMPSEQ : ⊦ (m + n0) + n1 = m + n0 + n1], [CSIMPSEQ : ⊦ m + n ≤ m + n0 ↔ n ≤ n0], [CSIMPSEQ : n ≤ m ⊦ (m - n) + m0 ≤ n0 ↔ m + m0 ≤ n0 + n], [CSIMPSEQ : ⊦ ¬ m < n ↔ n ≤ m], [CSIMPSEQ : n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0], [CSIMPSEQ : ⊦ ¬ m ≤ n ↔ n < m], [CSIMPSEQ : ⊦ m ≤ n → (n < m ↔ false)], [CSIMPSEQ : ⊦ m < n → m ≤ n])]]