| ⊦ fits(r, sks, st[r0 -- sk, val]) ↔ fits(r, sks, st), sk = _length, sk = _type, ∃ sks0, sks1. sks = sks0 + sk ' + sks1 ∧ st[r -- sks0] .refval = r0 ∧ (∀ sks2. sks2 + sk ' ⊑ sks0 → st[r -- sks2] .refval ≠ st[r -- sks0] .refval) |
⊦ fits(r, [], st)
∀ r, st, r0, sk, val. (fits(r, sks0, st[r0 -- sk, val]) ↔ fits(r, sks0, st)) ∨ sk = _length ∨ sk = _type ∨ (∃ sks2, sks1. sks0 = sks2 + sk ' + sks1 ∧ st[r -- sks2] .refval = r0 ∧ (∀ sks3. sks3 + sk ' ⊑ sks2 → st[r -- sks3] .refval ≠ st[r -- sks2] .refval)) ⊦ fits(r, sk0 + sks0, st[r0 -- sk, val]) ↔ fits(r, sk0 + sks0, st), sk = _length, sk = _type, ∃ sks2, sks1. sk0 + sks0 = sks2 + sk ' + sks1 ∧ st[r -- sks2] .refval = r0 ∧ (∀ sks3. sks3 + sk ' ⊑ sks2 → st[r -- sks3] .refval ≠ st[r -- sks2] .refval)
[[CONCRETESIMPRULES : ([CSIMPGEN : storekeys generated by [], +;])]]