| ¬ (is_fskey(sk) ∧ sk .fs .class ≠ class ∧ class ≠ `java.lang.Object' .class), fis .keys = statfields(class), initundone(class, st), validfieldinits(str, fis, st), initdone(class0, st), tdname∃(str, class0), sk ∈ statfields(class0), validstatfield(str, sk, st) ⊦ class = `java.lang.Object' .class, validstatfield(str, sk, addclass(class, fis, st)) |
⊦ is_indexkey(sk) → ¬ validstatfield(str, sk, st)
fis .keys = statfields(sk .fs .class), is_fskey(sk), validstatfield(str, sk, st), sk ∈ statfields(class0), tdname∃(str, class0), initdone(class0, st), validfieldinits(str, fis, st), initundone(sk .fs .class, st) ⊦ sk .fs .class = `java.lang.Object' .class, validstatfield(str, sk, addclass(sk .fs .class, fis, st))
[[CONCRETESIMPRULES : ([CSIMPSEQ : ⊦ ¬ is_indexkey(sk) ↔ is_fskey(sk)], [CSIMPSEQ : ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)])]]