| dups(vals0 .nonnullrefs) ↔ (∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1) ⊦ r0 = jvmref, r0 ∈ vals0 .nonnullrefs ∨ dups(vals0 .nonnullrefs) ↔ (∃ r, vals, vals1, vals2. refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1) |
dups(vals0 .nonnullrefs), dups(vals0 .nonnullrefs) ↔ (∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1) ⊦ r0 = jvmref, r0 ∈ vals0 .nonnullrefs ∨ dups(vals0 .nonnullrefs) ↔ (∃ r, vals, vals1, vals2. refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1)
dups(vals0 .nonnullrefs) ↔ (∃ r, vals, vals1, vals2. vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1) ⊦ dups(vals0 .nonnullrefs), r0 = jvmref, r0 ∈ vals0 .nonnullrefs ∨ dups(vals0 .nonnullrefs) ↔ (∃ r, vals, vals1, vals2. refval(r0) ' + vals0 = vals + refval(r) ' + vals1 + refval(r) ' + vals2 ∧ r ≠ jvmref ∧ ¬ refval(r) ∈ vals ∧ ¬ refval(r) ∈ vals1)
[[CONCRETESIMPRULES : ()], [EXTRAFMAS : (dups(vals0 .nonnullrefs))]]