| i0 < max(i0 ' + (ints0 -1l i)), max(ints0) < max(i0 ' + (ints0 -1l i)), ∀ i1. max(ints0) < max(ints0 -1l i1) → ints0 = i1 ' ∧ i1 < 0 ⊦ i = i0, i0 ' + ints0 = i ', ints0 = [] |
⊦ ints ≠ [] → max(i ' + ints) = max(i, max(ints))
ints0 -1l i ≠ [], i0 < max(i0, max(ints0 -1l i)), max(ints0) < max(i0, max(ints0 -1l i)), ∀ i1. max(ints0) < max(ints0 -1l i1) → ints0 = i1 ' ∧ i1 < 0 ⊦ i = i0, i0 ' + ints0 = i ', ints0 = []
Used simplifier rules: max-one: ⊦ max(i ') = i;%del1-empty: ⊦ ints ≠ [] → (ints -1l i = [] ↔ ints = i '); from specification list-del[intlista]%one-01: ⊦ ints ≠ [] → (i ' = ints0 + ints ↔ ints0 = [] ∧ i ' = ints); from specification list[intlista]%e: ⊦ i ' ≠ []; from specification list[intlista]%a: ⊦ (ints + ints0) + ints1 = ints + ints0 + ints1; from specification list[intlista]%one-01: ⊦ i ' -1l i = []; from specification list-del[intlista]%app: ⊦ ints + [] = ints; from specification list[intlista]%irreflexivity: ⊦ ¬ i < i; from specification oelem[intlista] Used terms: ints0 -1l i, i0