| validref(str, val .refval, ty, st), is_referencevalue(val), ∀ val. val ∈ vals → is_referencevalue(val) ∧ validref(str, val .refval, ty, st), val0 = val ∨ val0 ∈ vals ⊦ is_referencevalue(val0) ∧ validref(str, val0 .refval, ty, st) |
val = refval(r), validref(str, r, ty, st), is_referencevalue(val), ∀ val. val ∈ vals → is_referencevalue(val) ∧ validref(str, val .refval, ty, st), val0 = val ∨ val0 ∈ vals ⊦ is_referencevalue(val0) ∧ validref(str, val0 .refval, ty, st)
[[CONCRETESIMPRULES : ([CSIMPELIM : ⊦ is_referencevalue(val) → ( r = val .refval ↔ val = refval(r))])], [EXTRATERMS : (val, r)]]