| fis .keys = statfields(class), initundone(class, st), validfieldinits(str, fis, st) ⊦ class = `java.lang.Object' .class, (∀ class0. initdone(class0, st) → initdone(class0, addclass(class, fis, st))) ∧ (∀ class0. initerror(class0, st) → initerror(class0, addclass(class, fis, st))) ∧ (∀ class0. ¬ initdone(class0, st) ∧ initdone(class0, addclass(class, fis, st)) ∧ tdname∃(str, class0) → validstatfields(str, statfields(class0), addclass(class, fis, st))) ∧ (∀ class0, sk. initdone(class0, st) ∧ initdone(class0, addclass(class, fis, st)) ∧ tdname∃(str, class0) ∧ sk ∈ statfields(class0) ∧ validstatfield(str, sk, st) → validstatfield(str, sk, addclass(class, fis, st))) |
⊦ validfieldinits(str, fis, st) ∧ fis .keys = statfields(class) ∧ class ≠ `java.lang.Object' .class ∧ tdname∃(str, class) → validstatfields(str, statfields(class), addclass(class, fis, st))
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))
[[CONCRETESIMPRULES : ([CSIMPSEQ : class1 ≠ class2 ⊦ initerror (class1, addclass(class2, fis, st)) ↔ initerror(class1, st)], [CSIMPSEQ : ⊦ initundone(class1, st) → ¬ initerror(class1, st)], [CSIMPSEQ : class1 ≠ class2, class2 ≠ `java.lang.Object' .class ⊦ initdone (class1, addclass(class2, fis, st)) ↔ initdone(class1, st)], [CSIMPSEQ : ⊦ initundone(class1, st) → ¬ initdone(class1, st)])]]