| validreflist(str, vals1, ty1, st), validref(str, r, ty1, st), ∀ str, ty1, st, ty, vals0. validreflist(str, vals1, ty1, st) → validreflist(str, vals1, ty1, addarray(newref(st), ty, vals0, st)) ⊦ validref(str, r, ty1, addarray(newref(st), ty, vals0, st)) ∧ validreflist(str, vals1, ty1, addarray(newref(st), ty, vals0, st)) |
⊦ newref(r1, st) ∧ validref(str, r, ty1, st) → validref(str, r, ty1, addarray(r1, ty, vals, st))
newref(newref(st), st) ∧ validref(str, r, ty1, st), validreflist(str, vals1, ty1, st), validref(str, r, ty1, st), ∀ str, ty1, st, ty, vals0. validreflist(str, vals1, ty1, st) → validreflist(str, vals1, ty1, addarray(newref(st), ty, vals0, st)) ⊦ true ∧ validreflist(str, vals1, ty1, addarray(newref(st), ty, vals0, st))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ newref(newref(st), st)])], [EXTRATERMS : (st, vals0, ty, newref(st), ty1, r, str)]]