| key ∈ 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 |
⊦ key ∈ ks ↔ (∃ ks0. ks = ks0 ++ key ∧ ¬ key ∈ ks0)
∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls), ∀ key. key ∈ ks → key.dentry?, ∃ ks0. ks = ks0 ++ key ∧ ¬ key ∈ ks0, ∀ 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 = 0
Used terms: ks, key