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