| ar[m] = ar[n], m ≠ n, n < # ar, m < # ar ⊦ ⦉let m1 = 0, bv = false in { n := n0, m := m0, ar0 := ar ; while m1 < # ar0 ∧ ¬ bv do { let n1 = m1 + 1 in while n1 < # ar0 ∧ ¬ bv do if ar0[m1] = ar0[n1] then m := m1, n := n1, bv := true else n1 := n1 + 1 ; m1 := m1 + 1 } }⦊ (ar[m] = ar[n] ∧ m ≠ n ∧ m < # ar ∧ n < # ar) |
ar[m] = ar[n], m ≠ n, n < # ar, m < # ar, bv0 ↔ false, m2 = 0 ⊦ ⦉n := n0, m := m0, ar0 := ar⦊ ⦉while m2 < # ar0 ∧ ¬ bv0 do { let n1 = m2 + 1 in while n1 < # ar0 ∧ ¬ bv0 do if ar0[m2] = ar0[n1] then m := m2, n := n1, bv0 := true else n1 := n1 + 1 ; m2 := m2 + 1 }⦊ (ar[m] = ar[n] ∧ m ≠ n ∧ m < # ar ∧ n < # ar)
[[CONCRETESIMPRULES : ()]]