| # gndx1 = # lax1, ri[key] = @(n, n0, n1), gstore[n] = groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0), inv(groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0)), ri-cons(ri, nodes(gstore ↓, ginval)), key ∈ ri ⊦ nd.key ∈ ri ∧ ri[nd.key] = @(n, n0, n1) |
⊦ ri-cons(ri, fs) ↔ (∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]))
# gndx1 = # lax1, gstore[n] = groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0), ri[key] = @(n, n0, n1), inv(groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0)), key ∈ ri, ∀ key. key ∈ ri → ri[key] ∈ nodes(gstore ↓, ginval) ∧ key-cons(key, nodes(gstore ↓, ginval)[ri[key]]) ⊦ nd.key ∈ ri ∧ ri[nd.key] = @(n, n0, n1)
Used terms: nodes(gstore ↓, ginval), ri