| ∀ key. key ∈ ks → key.dentry?, ∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls), ∀ ls0, ks. # ls0 < # ls → (∀ key. key ∈ ks → key.dentry?) ∧ (∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls0)) → # ks = # ls0 ⊦ # ks = # ls, ks = ∅ |
∀ key. key ∈ ks → key.dentry?, ∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls), ∀ ls0, ks. # ls0 < # ls → (∀ key. key ∈ ks → key.dentry?) ∧ (∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls0)) → # ks = # ls0 ⊦ # ks = 0, # ks = # ls, ks = ∅
Used simplifier rules: size-zero: ⊦ # ks ≠ 0 → ks ≠ ∅; (forward) from specification set-basic[node-index]%size-zero-01: ⊦ ks ≠ ∅ → # ks ≠ 0; (forward) from specification set-basic[node-index]