| r0 ∈ H0, ¬ r0 ∈ map, H1 = H, map1 = map, copy-node-prepost(H0, H, map) ⊦ ⟪copy_node#(r0; r1, map, H)⟫ (copy-node-prepost(H0, H, map) ∧ H1 ⊆ H ∧ map1 ⊆ map ∧ r0 ∈ map ∧ map[r0] = r1) |
∀ H2, map0, r0, H1, H, map1, r1. # H2 - # map0 < # H0 - # map → r0 ∈ H2 ∧ ¬ r0 ∈ map0 ∧ H1 = H ∧ map1 = map0 ∧ copy-node-prepost(H2, H, map0) → ⟪copy_node#(r0; r1, map0, H)⟫ (copy-node-prepost(H2, H, map0) ∧ H1 ⊆ H ∧ map1 ⊆ map0 ∧ r0 ∈ map0 ∧ map0[r0] = r1), r0 ∈ H0, ¬ r0 ∈ map, H1 = H, map1 = map, copy-node-prepost(H0, H, map) ⊦ ⟪copy_node#(r0; r1, map, H)⟫ (copy-node-prepost(H0, H, map) ∧ H1 ⊆ H ∧ map1 ⊆ map ∧ r0 ∈ map ∧ map[r0] = r1)
[Concretesimprules((Csimplesspred(<))), Extraterms((# H0 - # map))]