| unique_al(ax0), # ay ≤ # ax0, (∃ ay. # ay < # ax0 ∧ unique_al(ax0.rest) ∧ (∀ a. a ∈ ax0 → a ∈ ay)) → ax0 = [] ∨ ax0.first.1 ∈ ax0.rest, ∀ a0. a0 = a ∨ a0 ∈ ax0 → a0 ∈ ay ⊦ a ∈ ax0 |
unique_al(ax0), # ay ≤ # ax0, (∃ ay. # ay < # ax0 ∧ unique_al(ax0.rest) ∧ (∀ a. a ∈ ax0 → a ∈ ay)) → ax0 = [] ∨ ax0.first.1 ∈ ax0.rest, ∀ a0. a0 = a ∨ a0 ∈ ax0 → a0 ∈ ay ⊦ ax0 = [], a ∈ ax0
Used simplifier rules: unique-e: ⊦ unique_al([]);%empty: ⊦ ¬ a ∈ [];%size-01: ⊦ # [] = 0; from specification list-data[assoclista]%lez-01: ⊦ m ≤ 0 ↔ m = 0; from specification nat%l: ⊦ # ax = 0 ↔ ax = []; from specification list-data[assoclista]%zero-01: ⊦ ¬ m < 0; from specification nat-basic1 Used formulas: ax0 = []