| st[r -- sk0] = refval(r1), r ≠ r0 ∨ sk0 ≠ sk, is_classtype(st[r -- _type] .type) → sk0 ∈ instfields(st[r -- _type] .type .class), (fits(r1, sks0, st[r0 -- sk, val]) ↔ fits(r1, sks0, st)) ∨ sks0 = sks + sk ' + sks1 ∧ st[r1 -- sks] .refval = r0 ∧ (∀ sks3. sks3 + sk ' ⊑ sks → st[r1 -- sks3] .refval ≠ st[r1 -- sks] .refval) ⊦ (is_arraytype(st[r -- _type] .type) → is_indexkey(sk0) ∧ 0 ≤ sk0 .index ∧ sk0 .index < st[r -- _length] .intval) ∧ fits(r1, sks0, st[r0 -- sk, val]) ↔ (is_arraytype(st[r -- _type] .type) → ¬ is_fskey(sk0) ∧ ¬ sk0 .index < 0 ∧ ¬ st[r -- _length] .intval ≤ sk0 .index) ∧ fits(r1, sks0, st), sk = _type, sk = _length, r = jvmref, ∃ sks, sks1. sk0 ' + sks0 = sks + sk ' + sks1 ∧ st[r -- sks] .refval = r0 ∧ (∀ sks3. sks3 + sk ' ⊑ sks → st[r -- sks3] .refval ≠ st[r -- sks] .refval) |
st[r -- sk0] = refval(r1), r ≠ r0 ∨ sk0 ≠ sk, is_classtype(st[r -- _type] .type) → sk0 ∈ instfields(st[r -- _type] .type .class), (fits(r1, sks0, st[r0 -- sk, val]) ↔ fits(r1, sks0, st)) ∨ sks0 = sks + sk ' + sks1 ∧ st[r1 -- sks] .refval = r0 ∧ (∀ sks3. sks3 + sk ' ⊑ sks → st[r1 -- sks3] .refval ≠ st[r1 -- sks] .refval) ⊦ fits(r1, sks0, st[r0 -- sk, val]) ↔ fits(r1, sks0, st), (is_arraytype(st[r -- _type] .type) → is_indexkey(sk0) ∧ 0 ≤ sk0 .index ∧ sk0 .index < st[r -- _length] .intval) ∧ fits(r1, sks0, st[r0 -- sk, val]) ↔ (is_arraytype(st[r -- _type] .type) → ¬ is_fskey(sk0) ∧ ¬ sk0 .index < 0 ∧ ¬ st[r -- _length] .intval ≤ sk0 .index) ∧ fits(r1, sks0, st), sk = _type, sk = _length, r = jvmref, ∃ sks, sks1. sk0 ' + sks0 = sks + sk ' + sks1 ∧ st[r -- sks] .refval = r0 ∧ (∀ sks3. sks3 + sk ' ⊑ sks → st[r -- sks3] .refval ≠ st[r -- sks] .refval)
[[CONCRETESIMPRULES : ([CSIMPNAMEDSEQ : javatype, , diff, ⊦ is_classtype(ty) → ¬ is_arraytype(ty)], [CSIMPNAMEDSEQ : storekey, , test-02, ⊦ is_indexkey(sk) → ¬ is_fskey(sk)], [CSIMPNAMEDSEQ : int-abs, , lels-04, ⊦ i ≤ j → (¬ ¬ j < i ↔ false)], [CSIMPNAMEDSEQ : int-abs, , lels-03, ⊦ i < j → (¬ ¬ j ≤ i ↔ false)], [CSIMPNAMEDSEQ : storekey, , test-01, ⊦ ¬ is_fskey(sk) ↔ is_indexkey(sk)], [CSIMPNAMEDSEQ : int-abs, , lels, ⊦ ¬ i < j ↔ j ≤ i], [CSIMPNAMEDSEQ : int-abs, , lels-01, ⊦ ¬ i ≤ j ↔ j < i], [CSIMPNAMEDSEQ : storekey, , test, ⊦ ¬ is_indexkey(sk) ↔ is_fskey(sk)])], [EXTRAFMAS : (( fits(r1, sks0, st[r0 -- sk, val]) ↔ fits(r1, sks0, st)))]]