| key0.ino ≤ ino ⊦ dentrykey(ino, str) = key0, key0 < dentrykey(ino, str), key0.dentry? ∧ ino = key0.ino ∧ str < key0.name, key0.data? ∧ ino = key0.ino |
key0 = dentrykey(ino0, str0), key0.ino ≤ ino ⊦ dentrykey(ino, str) = key0, key0 < dentrykey(ino, str), key0.data? ∧ ino = key0.ino, key0.dentry? ∧ ino = key0.ino ∧ str < key0.name
Used simplifier rules: key freely generated by inodekey, datakey, dentrykey;;% ⊦ datakey(m, m0) ≠ dentrykey(m1, str); (s)% ⊦ datakey(m, m0).ino = m; (s)%⊦ datakey(ino, n) < key ↔ ino < key.ino ∨ key.data? ∧ ino = key.ino ∧ n < key.part; (ws)% ⊦ dentrykey(m, str).ino = m; (s)% ⊦ ¬ dentrykey(m, str).data?; (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m ≤ n → (n ≤ m ↔ m = n); (s)% ⊦ ¬ datakey(m, m0).dentry?; (s)% ⊦ datakey(m, m0).data?; (s)% ⊦ inodekey(m) ≠ dentrykey(m0, str); (s)% ⊦ inodekey(m).ino = m; (s)% ⊦ inodekey(ino) < key ↔ ino < key.ino ∨ ¬ key.inode? ∧ ino = key.ino; (ws)% ⊦ ¬ dentrykey(m, str).inode?; (s)% ⊦ m ≠ n → (m ≤ n ↔ m < n); (s)