| n1 ≤ (# y + # z) + # x1, z ≠ [] ∧ # y = n1 ∨ z = [] ∧ # y ≤ n1 ∧ x1 = [] ∨ z = [] ∧ n1 = # y ∧ x1 ≠ [] ⊦ y = firstn(n1, (y + z) + x1) |
Used simplifier rules: ⊦ [] + x = x; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ firstn(# x, x + y) = x; (s)% ⊦ x + [] = x; (s)% ⊦ # [] = 0; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic% ⊦ n + 0 = n; (s)% ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)% ⊦ # x = n → firstn(n, x) = x; (s)