| violations(x) = m + 1, x[n + 1] < x[n], n + 1 < # x ⊦ violations(x[n, x[n + 1]][n + 1, x[n]]) = m, x = [] |
violations(a + x0) = m + 1, n + 1 < #(a + x0), (a + x0)[n + 1] < (a + x0)[n], ∀ m, n. violations(x0) = m + 1 ∧ x0[n + 1] < x0[n] ∧ n + 1 < # x0 → violations(x0[n, x0[n + 1]][n + 1, x0[n]]) = m ∨ x0 = [] ⊦ a + x0 = [], violations((a + x0)[n, (a + x0)[n + 1]][n + 1, (a + x0)[n]]) = m
Used simplifier rules: list freely generated by [], +;;