| ∀ key0. key0 ∈ ks0 → key0.dentry?, ∀ key. key.dentry? → (key = dentrykey(m, str) ∨ key ∈ ks0 ↔ mklink(key.ino, key.name) = mklink(m, str) ∨ mklink(key.ino, key.name) ∈ ls0), ∀ ls1, ks. # ls1 < #(ls0 ++ mklink(m, str)) → (∀ key. key ∈ ks → key.dentry?) ∧ (∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls1)) → # ks = # ls1 ⊦ # ks0 = # ls0, dentrykey(m, str) ∈ ks0, mklink(m, str) ∈ ls0, (key ∈ ks0 → key.dentry?) ∧ (key0.dentry? → (key0 ∈ ks0 ↔ mklink(key0.ino, key0.name) ∈ ls0)) |
key ∈ ks0, ∀ key. key.dentry? → (key = dentrykey(m, str) ∨ key ∈ ks0 ↔ mklink(key.ino, key.name) = mklink(m, str) ∨ mklink(key.ino, key.name) ∈ ls0), ∀ key0. key0 ∈ ks0 → key0.dentry?, ∀ ls1, ks. # ls1 < #(ls0 ++ mklink(m, str)) → (∀ key. key ∈ ks → key.dentry?) ∧ (∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls1)) → # ks = # ls1 ⊦ # ks0 = # ls0, key.dentry?, mklink(m, str) ∈ ls0, dentrykey(m, str) ∈ ks0
key0.dentry?, ∀ key. key.dentry? → (key = dentrykey(m, str) ∨ key ∈ ks0 ↔ mklink(key.ino, key.name) = mklink(m, str) ∨ mklink(key.ino, key.name) ∈ ls0), ∀ key0. key0 ∈ ks0 → key0.dentry?, ∀ ls1, ks. # ls1 < #(ls0 ++ mklink(m, str)) → (∀ key. key ∈ ks → key.dentry?) ∧ (∀ key. key.dentry? → (key ∈ ks ↔ mklink(key.ino, key.name) ∈ ls1)) → # ks = # ls1 ⊦ # ks0 = # ls0, key0 ∈ ks0 ↔ mklink(key0.ino, key0.name) ∈ ls0, mklink(m, str) ∈ ls0, dentrykey(m, str) ∈ ks0