| m2 = m0, 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), m2 < n, n ≤ # ar1, ∀ n0. m2 < n0 ∧ n0 < n → ar1[n0] ≠ ar1[m2] ∨ ar1[n0] = a1 ⊦ ⦉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) |
0 = # ar1 - n, m2 = m0, 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), m2 < n, n ≤ # ar1, ∀ n0. m2 < n0 ∧ n0 < n → ar1[n0] ≠ ar1[m2] ∨ ar1[n0] = a1 ⊦ ⦉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)
∀ ar1, n, m2, m0, ar, m, n0, bv0, a1, a, m1, n2. m4 = # ar1 - n ∧ m2 = m0 ∧ 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)) ∧ m2 < n ∧ n ≤ # ar1 ∧ (∀ n0. m2 < n0 ∧ n0 < n → ar1[n0] ≠ ar1[m2] ∨ ar1[n0] = a1) → ⦉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), m4 +1 = # ar1 - n, m2 = m0, 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), m2 < n, n ≤ # ar1, ∀ n0. m2 < n0 ∧ n0 < n → ar1[n0] ≠ ar1[m2] ∨ ar1[n0] = a1 ⊦ ⦉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 : ([CSIMPGEN : nat generated by 0, +1;])]]