| ∀ r0. r0 ∈ vals0 .nonnullrefs ↔ r0 ≠ jvmref ∧ (∃ m. vals0[m] = refval(r0) ∧ m < # vals0) ⊦ r ∈ (val ' + vals0) .nonnullrefs ↔ r ≠ jvmref ∧ (∃ m. (val ' + vals0)[m] = refval(r) ∧ ¬ # vals0 < m) |
⊦ ¬ is_referencevalue(val) ∨ val .refval = jvmref → (val ' + vals) .nonnullrefs = vals .nonnullrefs
¬ (¬ is_referencevalue(val) ∨ val .refval = jvmref), ∀ r0. r0 ∈ vals0 .nonnullrefs ↔ r0 ≠ jvmref ∧ (∃ m. vals0[m] = refval(r0) ∧ m < # vals0) ⊦ r ∈ (val ' + vals0) .nonnullrefs ↔ r ≠ jvmref ∧ (∃ m. (val ' + vals0)[m] = refval(r) ∧ ¬ # vals0 < m)
¬ is_referencevalue(val) ∨ val .refval = jvmref, ∀ r0. r0 ∈ vals0 .nonnullrefs ↔ r0 ≠ jvmref ∧ (∃ m. vals0[m] = refval(r0) ∧ m < # vals0) ⊦ r ∈ vals0 .nonnullrefs ↔ r ≠ jvmref ∧ (∃ m. (val ' + vals0)[m] = refval(r) ∧ ¬ # vals0 < m)
[[CONCRETESIMPRULES : ()], [EXTRATERMS : (vals0, val)]]