| # ay < #(p + ax0), unique_al((p + ax0).tail), ∀ a. a ∈ p + ax0 → a ∈ ay, ∀ ay. # ay < # ax0 ∧ unique_al(ax0.tail) ∧ (∀ a. a ∈ ax0 → a ∈ ay) → ax0 = [] ∨ ax0.head.1 ∈ ax0.tail ⊦ p + ax0 = [], (p + ax0).head.1 ∈ (p + ax0).tail |
unique_al(ax0), # ay ≤ # ax0, (∃ ay. # ay < # ax0 ∧ unique_al(ax0.tail) ∧ (∀ a. a ∈ ax0 → a ∈ ay)) → ax0 = [] ∨ ax0.head.1 ∈ ax0.tail, ∀ a. a ∈ p ' ∨ a ∈ ax0 → a ∈ ay ⊦ p.1 ∈ ax0
Used simplifier rules: inapp: ⊦ a ∈ ax + ay ↔ a ∈ ax ∨ a ∈ ay;% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ (p ' + ax).head = p; (s)%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m < n + 1 ↔ ¬ n < m; (s)% ⊦ # p ' = 0 +1; (s)% ⊦ #(ax + ax0) = # ax + # ax0; (s)% ⊦ (p ' + ax).tail = ax; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[assoclist]% ⊦ p ' + ax ≠ []; (s)% ⊦ p + ax = p ' + ax; (s)