| ∀ n1, m5, ar2, m6, n3, a2, m7, n4. m4 = # ar2 - n1 ∧ ar2[m6] = ar2[n3] ∧ ar2[n3] ≠ a2 ∧ m6 ≠ n3 ∧ n3 < # ar2 ∧ m6 < # ar2 ∧ m5 < # ar2 ∧ (∀ m1. m1 < m5 → (∀ n. m1 < n ∧ n < # ar2 → ar2[m1] ≠ ar2[n] ∨ ar2[m1] = a2)) ∧ m5 < n1 ∧ n1 ≤ # ar2 ∧ (∀ n0. m5 < n0 ∧ n0 < n1 → ar2[n0] ≠ ar2[m5] ∨ ar2[n0] = a2) → ⦉m3 := m5, bv := false, ar0 := ar2, a0 := a2 ; while n1 < # ar0 ∧ ¬ bv do if ar0[m3] = ar0[n1] ∧ ar0[m3] ≠ a0 then m7 := m3, n4 := n1, bv := true else n1 := n1 + 1⦊ ⦉m3 := m3 + 1⦊ ( (bv ⊃ (ar2[m7] = ar2[n4] ∧ ar2[m7] ≠ a2 ∧ m7 ≠ n4 ∧ m7 < # ar2 ∧ n4 < # ar2) ; (∀ m1. m1 < m3 → (∀ n. m1 < n ∧ n < # ar2 → ar2[m1] ≠ ar2[n] ∨ ar2[m1] = a2)) ) ∧ m3 ≤ # ar2 ∧ (∃ m, n. ar0[m] = ar0[n] ∧ ar2[m] ≠ a0 ∧ m ≠ n ∧ m < # ar0 ∧ n < # ar0) ∧ ¬ m3 ≤ m5), m2 = m0, ar1 = ar, a1 = a, ¬ bv0, # ar = (m4 + 1) + n, ar[m] = ar[n0], n1 = n + 1, ar[n0] ≠ a, m ≠ n0, n0 < # ar, m < # ar, m0 < n, n ≤ # ar, m0 < # ar, n0 ≤ m4 + n, m ≤ m4 + n, m0 ≤ m4 + n, ∀ m1. m1 < m0 → (∀ n. m1 < n ∧ n < # ar → ar[m1] ≠ ar[n] ∨ ar[m1] = a), ∀ n0. m0 < n0 ∧ n0 < n → ar[n0] ≠ ar[m0] ∨ ar[n0] = a, ¬ (ar[m0] = ar[n] ∧ ar[m0] ≠ a) ⊦ ⦉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⦊ ( (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 = # ar1 - n1 ∧ ar1[m] = ar1[n0] ∧ ar1[n0] ≠ a ∧ m ≠ n0 ∧ n0 < # ar1 ∧ m < # ar1 ∧ m2 < # ar1 ∧ (∀ m1. m1 < m2 → (∀ n. m1 < n ∧ n < # ar1 → ar1[m1] ≠ ar1[n] ∨ ar1[m1] = a)) ∧ m2 < n1 ∧ n1 ≤ # ar1 ∧ (∀ n0. m2 < n0 ∧ n0 < n1 → ar1[n0] ≠ ar1[m2] ∨ ar1[n0] = a) → ⦉m3 := m2, bv := false, ar0 := ar1, a0 := a ; n4 := n2, m7 := m1 ; while n1 < # ar0 ∧ ¬ bv do if ar0[m3] = ar0[n1] ∧ ar0[m3] ≠ a0 then m7 := m3, n4 := n1, bv := true else n1 := n1 + 1⦊ ⦉m3 := m3 + 1⦊ ( (bv ⊃ (ar1[m7] = ar1[n4] ∧ ar1[m7] ≠ a ∧ m7 ≠ n4 ∧ m7 < # ar1 ∧ n4 < # ar1) ; (∀ m1. m1 < m3 → (∀ n. m1 < n ∧ n < # ar1 → ar1[m1] ≠ ar1[n] ∨ ar1[m1] = a)) ) ∧ m3 ≤ # ar1 ∧ (∃ m, n. ar0[m] = ar0[n] ∧ ar1[m] ≠ a0 ∧ m ≠ n ∧ m < # ar0 ∧ n < # ar0) ∧ ¬ m3 ≤ m2), m2 = m0, ar1 = ar, a1 = a, ¬ bv0, # ar = (m4 + 1) + n, ar[m] = ar[n0], n1 = n + 1, ar[n0] ≠ a, m ≠ n0, n0 < # ar, m < # ar, m0 < n, n ≤ # ar, m0 < # ar, n0 ≤ m4 + n, m ≤ m4 + n, m0 ≤ m4 + n, ∀ m1. m1 < m0 → (∀ n. m1 < n ∧ n < # ar → ar[m1] ≠ ar[n] ∨ ar[m1] = a), ∀ n0. m0 < n0 ∧ n0 < n → ar[n0] ≠ ar[m0] ∨ ar[n0] = a, ¬ (ar[m0] = ar[n] ∧ ar[m0] ≠ a) ⊦ ⦉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⦊ ( (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 : ()], [EXTRATERMS : (n1, m2, ar1, m, n0, a, m1, n2)]]