diff --git a/Core_DOM/Core_SC_DOM/scope_components/Core_DOM_Heap_WF.thy b/Core_DOM/Core_SC_DOM/safely_composable/Core_DOM_Heap_WF.thy similarity index 99% rename from Core_DOM/Core_SC_DOM/scope_components/Core_DOM_Heap_WF.thy rename to Core_DOM/Core_SC_DOM/safely_composable/Core_DOM_Heap_WF.thy index e674f14..e7d9cd4 100644 --- a/Core_DOM/Core_SC_DOM/scope_components/Core_DOM_Heap_WF.thy +++ b/Core_DOM/Core_SC_DOM/safely_composable/Core_DOM_Heap_WF.thy @@ -4118,6 +4118,8 @@ interpretation i_remove_child_wf2?: l_remove_child_wf2\<^sub>C\<^sub>o\<^sub>r\< heap_is_wellformed parent_child_rel by unfold_locales +declare l_remove_child_wf2\<^sub>C\<^sub>o\<^sub>r\<^sub>e\<^sub>_\<^sub>D\<^sub>O\<^sub>M_axioms[instances] + lemma remove_child_wf2_is_l_remove_child_wf2 [instances]: "l_remove_child_wf2 type_wf known_ptr known_ptrs remove_child heap_is_wellformed get_child_nodes remove" apply(auto simp add: l_remove_child_wf2_def l_remove_child_wf2_axioms_def instances)[1] @@ -6128,7 +6130,7 @@ lemma create_character_data_preserves_wellformedness: and "h \ create_character_data document_ptr text \\<^sub>h h'" and "type_wf h" and "known_ptrs h" - shows "heap_is_wellformed h'" + shows "heap_is_wellformed h'" and "type_wf h'" and "known_ptrs h'" proof - obtain new_character_data_ptr h2 h3 disc_nodes_h3 where new_character_data_ptr: "h \ new_character_data \\<^sub>r new_character_data_ptr" and @@ -6140,6 +6142,11 @@ proof - by(auto simp add: create_character_data_def elim!: bind_returns_heap_E bind_returns_heap_E2[rotated, OF get_disconnected_nodes_pure, rotated] ) + then have "h \ create_character_data document_ptr text \\<^sub>r new_character_data_ptr" + apply(auto simp add: create_character_data_def intro!: bind_returns_result_I)[1] + apply (metis is_OK_returns_heap_I is_OK_returns_result_E old.unit.exhaust) + apply (metis is_OK_returns_heap_E is_OK_returns_result_I local.get_disconnected_nodes_pure pure_returns_heap_eq) + by (metis is_OK_returns_heap_I is_OK_returns_result_E old.unit.exhaust) have "new_character_data_ptr \ set |h \ character_data_ptr_kinds_M|\<^sub>r" @@ -6192,6 +6199,18 @@ proof - using object_ptr_kinds_eq_h3 by(auto simp add: node_ptr_kinds_def) + have "known_ptr (cast new_character_data_ptr)" + using \h \ create_character_data document_ptr text \\<^sub>r new_character_data_ptr\ local.create_character_data_known_ptr by blast + then + have "known_ptrs h2" + using known_ptrs_new_ptr object_ptr_kinds_eq_h \known_ptrs h\ h2 + by blast + then + have "known_ptrs h3" + using known_ptrs_preserved object_ptr_kinds_eq_h2 by blast + then + show "known_ptrs h'" + using known_ptrs_preserved object_ptr_kinds_eq_h3 by blast have "document_ptr |\| document_ptr_kinds h" using disc_nodes_h3 document_ptr_kinds_eq_h object_ptr_kinds_eq_h2 @@ -6302,7 +6321,7 @@ proof - using writes_small_big[where P="\h h'. type_wf h \ type_wf h'", OF set_val_writes h3] using set_val_types_preserved by(auto simp add: reflp_def transp_def) - then have "type_wf h'" + then show "type_wf h'" using writes_small_big[where P="\h h'. type_wf h \ type_wf h'", OF set_disconnected_nodes_writes h'] using set_disconnected_nodes_types_preserved by(auto simp add: reflp_def transp_def) diff --git a/Core_DOM/Core_SC_DOM/scope_components/classes/ElementClass.thy b/Core_DOM/Core_SC_DOM/safely_composable/classes/ElementClass.thy similarity index 100% rename from Core_DOM/Core_SC_DOM/scope_components/classes/ElementClass.thy rename to Core_DOM/Core_SC_DOM/safely_composable/classes/ElementClass.thy diff --git a/Core_DOM/Core_SC_DOM/scope_components/pointers/ShadowRootPointer.thy b/Core_DOM/Core_SC_DOM/safely_composable/pointers/ShadowRootPointer.thy similarity index 100% rename from Core_DOM/Core_SC_DOM/scope_components/pointers/ShadowRootPointer.thy rename to Core_DOM/Core_SC_DOM/safely_composable/pointers/ShadowRootPointer.thy