| ri-closed(ri, fs, ro), ri-cons(ri, fs), key ∈ ri ⊦ ri-closed(ri[key, adr], fs[adr, fs[ri[key]]], ro), adr ∈ fs |
key ∈ ri, key0 ∈ ri[key, adr], ∀ 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 ∈ fs, (ri[key, adr][key0] = adr ∨ ri[key, adr][key0] ∈ fs) ∧ node-closed(fs[adr, fs[ri[key]]][ri[key, adr][key0]], ri[key, adr], fs[adr, fs[ri[key]]], ro)
Used simplifier rules: ri-cons: ⊦ ri-cons(ri, fs) ↔ (∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]));%ri-closed: ⊦ ri-closed(ri, fs, ro) ↔ (∀ key. key ∈ ri → ri[key] ∈ fs ∧ node-closed(fs[ri[key]], ri, fs, ro));% ⊦ adr ∈ fs[adr1, nd] ↔ adr = adr1 ∨ adr ∈ fs; (s)