| ins≤(a, x0) = a1 ' + y, a0 < a, a1 ∈ ins≤(a, x0), ∀ a. ordered≤(ins≤(a, x0)) ↔ ordered≤(x0) ⊦ ¬ a1 < a0 ∧ ordered≤(ins≤(a, x0)) ↔ ordered≤(a0 ' + x0) |
⊦ x ≠ [] ∧ x.rest ≠ [] → (ordered≤(x) ↔ ¬ x.rest.first < x.first ∧ ordered≤(x.rest))
a0 ' + x0 ≠ [] ∧ (a0 ' + x0).rest ≠ [], ins≤(a, x0) = a1 ' + y, a0 < a, a1 ∈ ins≤(a, x0), ∀ a. ordered≤(ins≤(a, x0)) ↔ ordered≤(x0) ⊦ ¬ a1 < a0 ∧ ordered≤(ins≤(a, x0)) ↔ ¬ (a0 ' + x0).rest.first < (a0 ' + x0).first ∧ ordered≤((a0 ' + x0).rest)
Used simplifier rules: ins-e: ⊦ ins≤(a, []) = a ';%le-o: ⊦ ordered≤(a ');%le-e: ⊦ ordered≤([]);%e-01: ⊦ a ' + x ≠ []; from specification list%a: ⊦ (x + y) + z = x + y + z; from specification list%c-07: ⊦ (a ' + x).rest = x; from specification list%c-03: ⊦ a ' = b ' + x ↔ a = b ∧ x = []; from specification list%app: ⊦ x + [] = x; from specification list%in-17: ⊦ a ∈ b ' ↔ a = b; from specification list%transitivity: ⊦ a < b ∧ b < c → a < c; (forward) from specification oelem%lel: ⊦ a < b ∧ a = c → c < b; (forward) from specification oelem%irreflexivity: ⊦ ¬ a < a; from specification oelem Used terms: a0 ' + x0