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