| n ≤ # refs, ¬ dups(refs) ∧ (∀ r. r ∈ refs → newref(r, st)) ⊦ ¬ dups(firstn(n, refs)) ∧ (r ∈ firstn(n, refs) → newref(r, st)) |
⊦ newref(r, st) ↔ r ≠ jvmref ∧ (∀ rk. rk ∈ st → rk .ref ≠ r)
n ≤ # refs, r ∈ firstn(n, refs), r ∈ refs, ∀ r0. r0 ∈ refs → r0 ≠ jvmref ∧ (∀ rk. rk ∈ st → rk .ref ≠ r0) ⊦ dups(refs), newref(r, st)
[[CONCRETESIMPRULES : ([CSIMPFORWARD : ⊦ r ∈ firstn(n, refs) ∧ n ≤ # refs → r ∈ refs], [CSIMPSEQ : ⊦ n ≤ # refs ∧ ¬ dups(refs) → ¬ dups(firstn(n, refs))])]]