| ⊦ is_referencevalue(coerce(val, ty)) ↔ is_classtype(ty) ∨ is_arraytype(ty) ∨ ty = void_type |
⊦ coerce(val, boolean_type) = boolval(val .boolval)
⊦ coerce(val, int_type) = intval(val .intval)
⊦ coerce(val, short_type) = shortval(val .shortval)
⊦ coerce(val, byte_type) = byteval(val .byteval)
⊦ coerce(val, long_type) = longval(val .longval)
⊦ coerce(val, float_type) = floatval(val .floatval)
⊦ coerce(val, double_type) = doubleval(val .doubleval)
⊦ coerce(val, char_type) = charval(val .charval)
⊦ coerce(val, void_type) = refval(val .refval)
⊦ is_referencevalue(coerce(val, abstract_type)) ↔ is_classtype(abstract_type) ∨ is_arraytype(abstract_type) ∨ abstract_type = void_type
⊦ coerce(val, mkclasstype(class)) = refval(val .refval)
⊦ coerce(val, mkarraytype(ty)) = refval(val .refval)
[[CONCRETESIMPRULES : ([CSIMPGEN : javatype generated by boolean_type, int_type, short_type, byte_type, long_type, float_type, double_type, char_type, void_type, abstract_type, mkclasstype, mkarraytype;], [CSIMPSEQ : ⊦ is_arraytype(mkarraytype(ty))], [CSIMPSEQ : ⊦ ¬ is_classtype(mkarraytype(ty))], [CSIMPSEQ : ⊦ is_classtype(mkclasstype(class))], [CSIMPSEQ : ⊦ ¬ is_arraytype(void_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(void_type)], [CSIMPSEQ : ⊦ is_referencevalue(refval(r))], [CSIMPSEQ : ⊦ char_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(char_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(char_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue(charval(jchar))], [CSIMPSEQ : ⊦ double_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(double_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(double_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue (doubleval(doublevar))], [CSIMPSEQ : ⊦ float_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(float_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(float_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue (floatval(floatvar))], [CSIMPSEQ : ⊦ long_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(long_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(long_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue(longval(lo))], [CSIMPSEQ : ⊦ byte_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(byte_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(byte_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue(byteval(by))], [CSIMPSEQ : ⊦ short_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(short_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(short_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue(shortval(sho))], [CSIMPSEQ : ⊦ boolean_type ≠ void_type], [CSIMPSEQ : ⊦ ¬ is_arraytype(boolean_type)], [CSIMPSEQ : ⊦ ¬ is_classtype(boolean_type)], [CSIMPSEQ : ⊦ ¬ is_referencevalue (boolval(boolvar))], [CSIMPSEQ : ⊦ ¬ is_referencevalue(intval(i))], [CSIMPSEQ : ⊦ ¬ is_classtype(int_type)], [CSIMPSEQ : ⊦ ¬ is_arraytype(int_type)], [CSIMPSEQ : ⊦ int_type ≠ void_type])]]