| ty2 .jtelemtype = mkclasstype(`java.lang.Object' .class), type∃(str, ty0), is_classtype(ty0) ∨ is_arraytype(ty0), ∀ ty0, str, ty. i→n(ty .jtdims) < i→n(mkarraytype(ty2) .jtdims) → ( ty .jtelemtype = mkclasstype(`java.lang.Object' .class) ∧ type∃(str, ty0) ∧ (is_classtype(ty0) ∨ is_arraytype(ty0)) → contains(str, mkclasstype(`java.lang.Object' .class), ty0) ∨ contains(str, mkarraytype(ty), ty0)) ⊦ ty0 ≤ mkarraytype(ty2) ∧ type∃(str, mkarraytype(ty2)) ∧ type∃(str, ty0) ∨ contains(str, mkarraytype(ty2), ty0), contains(str, mkclasstype(`java.lang.Object' .class), ty0) |
ty2 .jtelemtype = mkclasstype(`java.lang.Object' .class), type∃(str, ty0), is_classtype(ty0) ∨ is_arraytype(ty0), ∀ ty0, str, ty. i→n(ty .jtdims) < i→n(mkarraytype(ty2) .jtdims) → ( ty .jtelemtype = mkclasstype(`java.lang.Object' .class) ∧ type∃(str, ty0) ∧ (is_classtype(ty0) ∨ is_arraytype(ty0)) → contains(str, mkclasstype(`java.lang.Object' .class), ty0) ∨ contains(str, mkarraytype(ty), ty0)) ⊦ contains(str, mkarraytype(ty2), ty0), contains(str, mkclasstype(`java.lang.Object' .class), ty0), ty0 ≤ mkarraytype(ty2) ∧ type∃(str, ty2)
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ type∃(str, mkarraytype(ty)) ↔ type∃(str, ty)])]]