| j < i, perm(ints0, ints1 + ints), ints = [] ∨ j < min(ints), ints1 = [] ∨ max(ints1) ≤ j ⊦ perm(i ' + ints0, ints1 + (i + ints)) ∧ (ints1 = [] ∨ max(ints1) ≤ j) ∧ (i + ints = [] ∨ j < min(i + ints)) |
j < i, perm(ints0, ints1 + ints), min(i ' + ints) ≤ j, j < min(ints), min(i ' + ints) < i, min(i ' + ints) < min(ints), ints1 = [] ∨ max(ints1) ≤ j ⊦ ints = []
Used simplifier rules: min-one: ⊦ min(i ') = i;%forward-lels: ⊦ i ≤ j ∧ j < j0 → i < j0; (forward) from specification int-abs%lels-03: ⊦ i < j → (¬ ¬ j ≤ i ↔ false); from specification int-abs%app: ⊦ ints + [] = ints; from specification list[intlista]%lels: ⊦ ¬ i < j ↔ j ≤ i; from specification int-abs%e-01: ⊦ i ' + ints ≠ []; from specification list[intlista]%c: ⊦ perm(ints, ints0 + ints1) → perm(ints2 + ints, ints0 + ints2 + ints1); from specification list-perm[intlista]%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%c: ⊦ i + ints = i ' + ints; from specification list[intlista]