| ri-cons(ri, fs) ⊦ ri-cons(ri0, fs0) ↔ (∀ key. (key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]])) → key ∈ ri0 → ri0[key] ∈ fs0 ∧ key-cons(key, fs0[ri0[key]])) |
key ∈ ri0, key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]), ∀ key. key ∈ ri0 → ri0[key] ∈ fs0 ∧ key-cons(key, fs0[ri0[key]]), ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ ri0[key] ∈ fs0 ∧ key-cons(key, fs0[ri0[key]])
Used simplifier rules: ri-cons: ⊦ ri-cons(ri, fs) ↔ (∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]));%ri-cons-in: ⊦ key ∈ ri ∧ ri-cons(ri, fs) → ri[key] ∈ fs;%ri-key-cons: ⊦ key ∈ ri ∧ ri-cons(ri, fs) → key-cons(key, fs[ri[key]]);