| ax.toSet = range ri | n, ri-cons(ri, fs), ∃ key. key ∈ ri \ keys(fs, ax).toSet ∧ (ri \ keys(fs, ax).toSet)[key] = @(n, m0, m1) ⊦ |
ax.toSet = range ri | n, ri[key] = @(n, m0, m1), ri-cons(ri, fs), key ∈ ri ⊦ key ∈ keys(fs, ax)
Used simplifier rules: toSet-diff-get: ⊦ ¬ key ∈ kx → (ri \ kx.toSet)[key] = ri[key];% ⊦ key ∈ kx.toSet ↔ key ∈ kx; (s)% ⊦ key ∈ ri \ ks ↔ key ∈ ri ∧ ¬ key ∈ ks; (ws)