| unique_al((p0 + ax0) + p ' + ay), ∀ p, ay. unique_al(ax0 + p ' + ay) → ax0 + ay = [] ∨ ¬ (ax0 + ay).head.1 ∈ (ax0 + ay).tail ∧ unique_al((ax0 + ay).tail) ⊦ (p0 + ax0) + ay = [], ¬ ((p0 + ax0) + ay).head.1 ∈ ((p0 + ax0) + ay).tail ∧ unique_al(((p0 + ax0) + ay).tail) |
unique_al((p0 ' + ax0) + p ' + ay), ∀ p, ay. unique_al(ax0 + p ' + ay) → ax0 + ay = [] ∨ ¬ (ax0 + ay).head.1 ∈ (ax0 + ay).tail ∧ unique_al((ax0 + ay).tail) ⊦ ¬ p0.1 ∈ ax0 ∧ ¬ p0.1 ∈ ay ∧ unique_al(ax0 + ay)
Used simplifier rules: inapp: ⊦ a ∈ ax + ay ↔ a ∈ ax ∨ a ∈ ay;% ⊦ (p ' + ax).tail = ax; (s)% ⊦ (p ' + ax).head = p; (s)% ⊦ p ' + ax ≠ []; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[assoclist]% ⊦ p + ax = p ' + ax; (s)