| fo.inodes?, ro.inodes?, dups(log + adr0 ' + adr1 ' + adr2 ' + adr3 '), fo ⊆ dom fi, ro ⊆ dom ri, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]), ∀ key. key ∈ ri → ri[key] ∈ fs ∧ node-closed(fs[ri[key]], ri, fs, ro), ∀ adr. adr ∈ log → adr ∈ fs ∧ node-cons(fs[adr].key, fs[adr]) ⊦ adr0 = adr1, adr0 = adr2, adr0 = adr3, adr0 = adr4, adr1 = adr2, adr1 = adr3, adr1 = adr4, adr2 = adr3, adr2 = adr4, adr3 = adr4, dups(log), inodekey(0) ∈ ri, adr0 ∈ fs, adr1 ∈ fs, adr2 ∈ fs, adr3 ∈ fs, adr4 ∈ fs, adr4 ∈ log, adr3 ∈ log |
⊦ ¬ adr ∈ ax → (dups(ax + adr ') ↔ dups(ax))
ro.inodes?, fo.inodes?, dups(log + adr0 ' + adr1 ' + adr2 '), ro ⊆ dom ri, fo ⊆ dom fi, ∀ adr. adr ∈ log → adr ∈ fs ∧ node-cons(fs[adr].key, fs[adr]), ∀ key. key ∈ ri → ri[key] ∈ fs ∧ node-closed(fs[ri[key]], ri, fs, ro), ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ adr0 = adr4, adr0 = adr3, adr0 = adr2, adr0 = adr1, adr1 = adr4, adr1 = adr3, adr1 = adr2, adr2 = adr4, adr2 = adr3, adr3 = adr4, dups(log), adr3 ∈ log, adr4 ∈ log, adr4 ∈ fs, adr3 ∈ fs, adr2 ∈ fs, adr1 ∈ fs, adr0 ∈ fs, inodekey(0) ∈ ri, adr3 ∈ log + adr0 ' + adr1 ' + adr2 '
Used simplifier rules: ⊦ adr ∈ ax + ax0 ↔ adr ∈ ax ∨ adr ∈ ax0; (s)% ⊦ adr ≠ adr0 → (adr ∈ adr0 ' + ax ↔ adr ∈ ax); (s)% ⊦ adr ∈ adr0 ' ↔ adr = adr0; (s)%a: ⊦ (ax + ax0) + ax1 = ax + ax0 + ax1; from specification list[address-list-set] Used terms: adr3, log + adr0 ' + adr1 ' + adr2 '