| ∀ key. key.dentry? ∧ key.ino = ino → ¬ key.name ∈ entries, ∀ ks0, ino, entries. # ks0 < # ∅ → (∀ key. key ∈ ks0 → key.dentry? ∧ key.ino = ino) ∧ (∀ key. key.dentry? ∧ key.ino = ino → (key ∈ ks0 ↔ key.name ∈ entries)) → # ks0 = # entries ⊦ ∀ str. (str ∈ entries ↔ str ∈ ∅) ∧ (str ∈ entries → entries[str] = (∅)[str]) |
str ∈ entries, ∀ key. key.dentry? ∧ key.ino = ino → ¬ key.name ∈ entries, ∀ ks0, ino, entries. # ks0 < # ∅ → (∀ key. key ∈ ks0 → key.dentry? ∧ key.ino = ino) ∧ (∀ key. key.dentry? ∧ key.ino = ino → (key ∈ ks0 ↔ key.name ∈ entries)) → # ks0 = # entries ⊦
Used simplifier rules: ⊦ ¬ str ∈ ∅; (s)