| ⊦ ty = abstract_type, okval(initial_value(ty), ty) |
⊦ initial_value(boolean_type) = boolval(false)
⊦ okval(val, boolean_type) ↔ is_boolvalue(val)
⊦ initial_value(int_type) = intval(0)
⊦ okval(val, int_type) ↔ is_integervalue(val)
⊦ initial_value(short_type) = shortval(0s)
⊦ okval(val, short_type) ↔ is_shortvalue(val)
⊦ initial_value(byte_type) = byteval(0b)
⊦ okval(val, byte_type) ↔ is_bytevalue(val)
⊦ initial_value(long_type) = longval(0l)
⊦ okval(val, long_type) ↔ is_longvalue(val)
⊦ initial_value(float_type) = floatval(0f)
⊦ okval(val, float_type) ↔ is_floatvalue(val)
⊦ initial_value(double_type) = doubleval(0d)
⊦ okval(val, double_type) ↔ is_doublevalue(val)
⊦ initial_value(char_type) = charval(mkchar(0))
⊦ okval(val, char_type) ↔ is_charvalue(val)
⊦ initial_value(void_type) = refval(jvmref)
⊦ okval(val, void_type) ↔ is_referencevalue(val)
⊦ initial_value(mkclasstype(class1)) = refval(jvmref)
⊦ okval(val, mkclasstype(class1)) ↔ is_referencevalue(val)
⊦ initial_value(mkarraytype(ty)) = refval(jvmref)
⊦ okval(val, mkarraytype(ty)) ↔ is_referencevalue(val)
[[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 : ⊦ mkarraytype(ty) ≠ abstract_type], [CSIMPSEQ : ⊦ mkclasstype(class) ≠ abstract_type], [CSIMPSEQ : ⊦ is_referencevalue(refval(r))], [CSIMPSEQ : ⊦ void_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_charvalue(charval(jchar))], [CSIMPSEQ : ⊦ char_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_doublevalue (doubleval(doublevar))], [CSIMPSEQ : ⊦ double_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_floatvalue(floatval(floatvar))], [CSIMPSEQ : ⊦ float_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_longvalue(longval(lo))], [CSIMPSEQ : ⊦ long_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_bytevalue(byteval(by))], [CSIMPSEQ : ⊦ byte_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_shortvalue(shortval(sho))], [CSIMPSEQ : ⊦ short_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_boolvalue(boolval(boolvar))], [CSIMPSEQ : ⊦ boolean_type ≠ abstract_type], [CSIMPSEQ : ⊦ int_type ≠ abstract_type], [CSIMPSEQ : ⊦ is_integervalue(intval(i))])]]