| ks = ∅, ∀ key. key ∈ ks → key.dentry? ∧ key.ino = ino, ∀ key. key.dentry? ∧ key.ino = ino → (key ∈ ks ↔ key.name ∈ entries), ∀ ks0, ino, entries. # ks0 < # ks → (∀ key. key ∈ ks0 → key.dentry? ∧ key.ino = ino) ∧ (∀ key. key.dentry? ∧ key.ino = ino → (key ∈ ks0 ↔ key.name ∈ entries)) → # ks0 = # entries ⊦ # ks = # 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 ⊦ entries = ∅
Used simplifier rules: ⊦ ¬ key ∈ ∅; (s)% ⊦ # entries = 0 ↔ entries = ∅; (s)% ⊦ # ∅ = 0; (s)