| r -- sk ∈ st, r ∈ st ⊦ unique_al(fis + (sk × val) ') ∧ ¬ _type ∈ fis + (sk × val) ' ∧ ¬ _length ∈ fis + (sk × val) ' ∧ hasKeys(r, (fis + (sk × val) ') .keys, st) ↔ validFields(r, fis, st), sk = _length, sk = _type, sk ∈ fis |
⊦ (fis + fis0) .keys = fis .keys + fis0 .keys
⊦ fv ' .keys = fv .1 '
⊦ hasKeys(r, sks + sks0, st) ↔ hasKeys(r, sks, st) ∧ hasKeys(r, sks0, st)
⊦ hasKeys(r, sk ', st) ↔ r -- sk ∈ st
r -- sk ∈ st, r ∈ st ⊦ sk = _length, sk = _type, unique_al(fis) ∧ ¬ _type ∈ fis ∧ ¬ _length ∈ fis ∧ hasKeys(r, fis .keys, st) ↔ validFields(r, fis, st), sk ∈ fis
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ (sks + sks0) + sks1 = sks + sks0 + sks1], [CSIMPSEQ : ⊦ sk ∈ (sk0 × val) ' ↔ sk = sk0], [CSIMPSEQ : ⊦ sk ∈ fis + fis0 ↔ sk ∈ fis ∨ sk ∈ fis0], [CSIMPSEQ : ⊦ (fis + fis0) + fis1 = fis + fis0 + fis1], [CSIMPSEQ : ⊦ (sk × val) .1 = sk], [CSIMPSEQ : ⊦ unique_al(fis + fv ') ↔ ¬ fv .1 ∈ fis ∧ unique_al(fis)])]]