| ps = ∅, ∀ p, q. p ∈ ps ∧ q ∈ ps ∧ fpathtolink(p) = fpathtolink(q) → p = q, ∀ alink. alink ∈ ls → (∃ p. p ∈ ps ∧ fpathtolink(p) = alink), ∀ p. p ∈ ps → fpathtolink(p) ∈ ls, ∀ ps0, fpathtolink, ls. # ps0 < # ps → (∀ p, q. p ∈ ps0 ∧ q ∈ ps0 ∧ fpathtolink(p) = fpathtolink(q) → p = q) ∧ (∀ alink. alink ∈ ls → (∃ p. p ∈ ps0 ∧ fpathtolink(p) = alink)) ∧ (∀ p. p ∈ ps0 → fpathtolink(p) ∈ ls) → (# ps0 = # ls ↔ true) ⊦ # ps = # ls |
∀ alink. ¬ alink ∈ ls, ∀ ps0, fpathtolink, ls. # ps0 < # ∅ → (∀ p, q. p ∈ ps0 ∧ q ∈ ps0 ∧ fpathtolink(p) = fpathtolink(q) → p = q) ∧ (∀ alink. alink ∈ ls → (∃ p. p ∈ ps0 ∧ fpathtolink(p) = alink)) ∧ (∀ p. p ∈ ps0 → fpathtolink(p) ∈ ls) → (# ps0 = # ls ↔ true) ⊦ 0 = # ls, ls = ∅
Used simplifier rules: size-zero-01: ⊦ ls ≠ ∅ → # ls ≠ 0; (forward) from specification set-basic[alink-set]%size-zero: ⊦ # ls ≠ 0 → ls ≠ ∅; (forward) from specification set-basic[alink-set]% ⊦ ¬ p ∈ ∅; (s)% ⊦ # ∅ = 0; (s)