| H1 = H, map1 = map, closed(succ0, H0), copy-edges-prepost(succ1, H0, H, map), ∀ r0, r1, map0, H. map ⊆ map0 ∧ copy-node-prepost(H0, H, map0) ∧ ¬ r0 ∈ map0 ∧ r0 ∈ H0 → ⟪map1 := map0, H1 := H; copy_node#(r0; r1, map0, H)⟫ (copy-node-prepost(H0, H, map0) ∧ H1 ⊆ H ∧ map1 ⊆ map0 ∧ r0 ∈ map0 ∧ map0[r0] = r1) ⊦ ⟪copy_edges#(succ0; succ1, map, H)⟫ (closed(succ0, H0) ∧ H1 ⊆ H ∧ map1 ⊆ map ∧ copy-edges-prepost(succ1, H0, H, map)) |
∀ r0, r1, map0, H. map ⊆ map0 ∧ copy-node-prepost(H0, H, map0) ∧ ¬ r0 ∈ map0 ∧ r0 ∈ H0 → ⟪map1 := map0, H1 := H; copy_node#(r0; r1, map0, H)⟫ (copy-node-prepost(H0, H, map0) ∧ H1 ⊆ H ∧ map1 ⊆ map0 ∧ r0 ∈ map0 ∧ map0[r0] = r1), H1 = H, map1 = map, closed(succ0, H0), copy-edges-prepost(succ1, H0, H, map) ⊦ ⟪copy_edges#(succ0; succ1, map, H)⟫ (closed(succ0, H0) ∧ H1 ⊆ H ∧ map1 ⊆ map ∧ copy-edges-prepost(succ1, H0, H, map))
[]