| ∀ ay. # ay < # ax0 ∧ unique_al(ax0.rest) ∧ (∀ a. a ∈ ax0 → a ∈ ay) → ax0 = [] ∨ ax0.first.1 ∈ ax0.rest, # ay < #(p + ax0), unique_al((p + ax0).rest), ∀ a. a ∈ p + ax0 → a ∈ ay ⊦ p + ax0 = [], (p + ax0).first.1 ∈ (p + ax0).rest |
unique_al(ax0), # ay ≤ # ax0, (∃ ay. # ay < # ax0 ∧ unique_al(ax0.rest) ∧ (∀ a. a ∈ ax0 → a ∈ ay)) → ax0 = [] ∨ ax0.first.1 ∈ ax0.rest, ∀ a. a ∈ p ' ∨ a ∈ ax0 → a ∈ ay ⊦ p.1 ∈ ax0
Used simplifier rules: inapp: ⊦ a ∈ ax + ay ↔ ¬ ¬(a ∈ ax ∨ a ∈ ay);%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%c-08: ⊦ (p ' + ax).first = p; from specification list[assoclista]%c-07: ⊦ (p ' + ax).rest = ax; from specification list[assoclista]%c: ⊦ m + n = n + m; from specification nat-basic2%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic2%s: ⊦ m < n + 1 ↔ ¬ n < m; from specification nat-basic2%succ: ⊦ m +1 = m + 1; from specification nat-basic2%len-05: ⊦ #(p ' + ax) = (# ax)+1; from specification list[assoclista]%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[assoclista]%e-01: ⊦ p ' + ax ≠ []; from specification list[assoclista]%c: ⊦ p + ax = p ' + ax; from specification list[assoclista]