l_remove_child_wf2_axioms_def: fixes type_wf :: "(_) heap \<Rightarrow> bool"   and known_ptrs :: "(_) heap \<Rightarrow> bool"   and remove_child :: "(_) object_ptr \<Rightarrow> (_) node_ptr \<Rightarrow> ((_) heap, exception, unit) prog"   and heap_is_wellformed :: "(_) heap \<Rightarrow> bool"   and get_child_nodes :: "(_) object_ptr \<Rightarrow> ((_) heap, exception, (_) node_ptr list) prog"   and remove :: "(_) node_ptr \<Rightarrow> ((_) heap, exception, unit) prog" shows "l_remove_child_wf2_axioms type_wf known_ptrs remove_child heap_is_wellformed get_child_nodes remove \<equiv> (((\<forall>h ptr child h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> remove_child ptr child \<rightarrow>\<^sub>h h' \<longrightarrow> type_wf h') \<and> (\<forall>h ptr child h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> remove_child ptr child \<rightarrow>\<^sub>h h' \<longrightarrow> known_ptrs h')) \<and> (\<forall>h ptr child h'. type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> heap_is_wellformed h \<longrightarrow> h \<turnstile> remove_child ptr child \<rightarrow>\<^sub>h h' \<longrightarrow> heap_is_wellformed h') \<and> (\<forall>h child h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> remove child \<rightarrow>\<^sub>h h' \<longrightarrow> type_wf h') \<and> (\<forall>h child h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> remove child \<rightarrow>\<^sub>h h' \<longrightarrow> known_ptrs h')) \<and> ((\<forall>h child h'. type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> heap_is_wellformed h \<longrightarrow> h \<turnstile> remove child \<rightarrow>\<^sub>h h' \<longrightarrow> heap_is_wellformed h') \<and> (\<forall>h ptr' child h' ptr children. heap_is_wellformed h \<longrightarrow> h \<turnstile> remove_child ptr' child \<rightarrow>\<^sub>h h' \<longrightarrow> h' \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r children \<longrightarrow> known_ptrs h \<longrightarrow> type_wf h \<longrightarrow> child \<notin> set children)) \<and> (\<forall>h ptr node_ptr children h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r node_ptr # children \<longrightarrow> h \<turnstile> remove_child ptr node_ptr \<rightarrow>\<^sub>h h' \<longrightarrow> h' \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r children) \<and> (\<forall>h ptr node_ptr children h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r node_ptr # children \<longrightarrow> h \<turnstile> remove node_ptr \<rightarrow>\<^sub>h h' \<longrightarrow> h' \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r children) \<and> (\<forall>h ptr children h'. heap_is_wellformed h \<longrightarrow> type_wf h \<longrightarrow> known_ptrs h \<longrightarrow> h \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r children \<longrightarrow> h \<turnstile> forall_M remove children \<rightarrow>\<^sub>h h' \<longrightarrow> h' \<turnstile> get_child_nodes ptr \<rightarrow>\<^sub>r [])"