isabelle-2021: update SysInit

Signed-off-by: Gerwin Klein <kleing@unsw.edu.au>
This commit is contained in:
Gerwin Klein 2021-02-18 10:55:56 +11:00 committed by Gerwin Klein
parent b5f320ece4
commit 9e5a7583fc
8 changed files with 17 additions and 15 deletions

View File

@ -204,7 +204,8 @@ lemma retype_untyped_wp:
(si_cnode_id, unat seL4_CapInitThreadCNode) \<mapsto>c si_cnode_cap \<and>* R\<guillemotright> s \<and>
(\<not>has_children (si_cnode_id,unat untyped_cptr) (kernel_state s) \<longrightarrow> cover_ids = available_ids) \<and>
list_all (\<lambda>index. has_children (si_cnode_id, untyped_slots ! index) (kernel_state s)) indices)\<rbrace>"
(* I would like to remove this later by rewritting seL4_Untyped_Retype_sep *)
including no_take_bit
(* I would like to remove this later by rewriting seL4_Untyped_Retype_sep *)
apply (subgoal_tac "si_cspace_cap=si_cnode_cap", simp)
apply (unfold retype_untyped_def)
apply (rule hoare_chain)
@ -704,6 +705,7 @@ lemma retype_untyped_loop_inv_success:
list_all (\<lambda>index. \<not>has_children (si_cnode_id,untyped_slots!index) (kernel_state s) \<longrightarrow>
is_full_untyped_cap (untyped_caps!index)) [0 ..< length untyped_slots] \<and>
si_caps = map_of (zip (take obj_id_index obj_ids) free_cptrs))\<rbrace>"
including no_take_bit
apply (subst list_all_imp_filter2)+
apply (rule hoare_ex_pre hoare_ex_pre_conj)+
apply (rule hoare_grab_asm2)+
@ -954,6 +956,7 @@ lemma retype_untyped_loop_inv_fail:
list_all (\<lambda>index. \<not>has_children (si_cnode_id,untyped_slots!index) (kernel_state s) \<longrightarrow>
is_full_untyped_cap (untyped_caps!index)) [0 ..< length untyped_slots] \<and>
si_caps = map_of (zip (take obj_id_index obj_ids) free_cptrs))\<rbrace>"
including no_take_bit
apply (subst list_all_imp_filter2)+
apply (rule valid_imp_ex)+
apply (rule hoare_ex_pre hoare_ex_pre_conj)+

View File

@ -1414,7 +1414,7 @@ lemma seL4_CNode_Mint_object_slot_initialised_sep_helper:
cap_badge (default_cap NotificationType {client_object_id}
(object_size_bits spec_cap_obj) dev) = 0)")
prefer 2
apply (blast intro: ep_related_capI ep_related_cap_badge_of_default)
apply (blast intro: ep_related_cap_badge_of_default)
apply clarsimp
apply (intro conjI,
simp_all add:has_type_default_not_non ep_related_cap_default_cap

View File

@ -909,7 +909,7 @@ lemma configure_tcb_sep:
and root_size = si_cnode_size
and tcb_cap = "TcbCap (the (t obj_id))"
and tcb = "spec2s t (the (cdl_objects spec obj_id))"] |
simp add: guard_equal_si_cspace_cap' cap_object_simps is_tcb_default_cap)+
simp add: guard_equal_si_cspace_cap' is_tcb_default_cap)+
apply (subst offset_slot_si_cnode_size', assumption)+
apply clarsimp
apply sep_solve

View File

@ -304,7 +304,7 @@ lemma pd_slot_compute_from_pt[simp]:
apply (rule shiftl_less_t2n, simp+)
apply (clarsimp simp: shiftr_over_or_dist)
apply (subst shiftl_shiftr_id, simp+)
apply (clarsimp simp: limited_and_simps)
apply (clarsimp simp: shiftl_shiftr2)
apply (subst le_mask_iff [THEN iffD1])
apply (clarsimp simp: mask_def plus_one_helper)
apply clarsimp

View File

@ -475,7 +475,7 @@ lemma is_default_cap_cap_transform [simp]:
"well_formed_cap cap \<Longrightarrow> is_default_cap (cap_transform t cap) = is_default_cap cap"
apply (clarsimp simp: is_default_cap_def well_formed_cap_def cap_type_def default_cap_def
cap_transform_def cap_has_object_def)
apply (cases cap, simp_all add: cap_object_simps update_cap_object_def cnode_cap_size_def)
apply (cases cap, simp_all add: update_cap_object_def cnode_cap_size_def)
done
lemma default_cap_cap_transform:

View File

@ -143,7 +143,7 @@ lemma le_list_all:
apply (clarsimp simp: list_all_iff)
apply (subst word_arith_power_alt)
apply simp
by (metis (no_types) dual_order.strict_trans2 unat_less_2_si_cnode_size word_of_int_numeral word_of_int_power_hom)
by (metis (no_types) dual_order.strict_trans2 unat_less_2_si_cnode_size)
lemma list_all_drop:
"list_all P xs \<Longrightarrow> list_all P (drop n xs)"

View File

@ -84,7 +84,7 @@ lemma start_thread_sep:
and cnode_cap = si_cspace_cap
and root_size = si_cnode_size
and tcb_cap = "TcbCap (the (t obj_id))"] |
simp add: guard_equal_si_cspace_cap' cap_object_simps is_tcb_default_cap)+
simp add: guard_equal_si_cspace_cap' is_tcb_default_cap)+
apply (subst offset_slot_si_cnode_size', assumption)+
apply (clarsimp simp: cap_transform_MasterReplyCap)
by sep_solve

View File

@ -96,7 +96,7 @@ lemma guard_size_shiftl_non_zero:
apply (rule of_nat_n_less_equal_power_2)
apply (clarsimp simp: guard_bits_def)
apply (clarsimp simp: guard_bits_def)
apply (clarsimp simp: of_nat_0)
apply (clarsimp simp: of_nat_0 simp del: word_of_nat_eq_0_iff)
apply (drule of_nat_0)
apply (erule less_le_trans)
apply (clarsimp simp: guard_bits_def word_bits_def)
@ -710,9 +710,8 @@ lemma well_formed_cap_has_object:
apply (clarsimp simp: well_formed_caps_def)
apply (erule_tac x=slot in allE)
apply (clarsimp simp: domI)
apply (clarsimp simp: cap_has_object_def well_formed_cap_def
split: cdl_cap.splits)
done
by (clarsimp simp: cap_has_object_def well_formed_cap_def
split: cdl_cap.splits)
lemma well_formed_cap_object:
"\<lbrakk>well_formed spec; opt_cap (obj_id, slot) spec = Some spec_cap;
@ -1592,10 +1591,9 @@ lemma well_formed_objects_card:
apply (frule well_formed_objects_only_real_or_irq)
apply (subgoal_tac " card (used_irqs spec) = card (used_irq_nodes spec)", simp)
apply (subst card_Un_Int, simp+)
apply (metis Int_commute Nat.add_0_right Un_commute card_empty used_irq_nodes_def)
apply (simp add: Int_commute Un_commute used_irq_nodes_def)
by (metis card_image inj_inj_on used_irq_nodes_def)
(****************************************
* Packing data into a well_formed cap. *
****************************************)
@ -1636,7 +1634,7 @@ lemma update_cap_rights_and_data:
apply (drule_tac m=8 in word_shift_zero, rule less_imp_le)
apply (clarsimp simp: guard_bits_def word_of_nat_less)
apply simp
apply (clarsimp simp: of_nat_0 guard_bits_def word_bits_def)
apply (clarsimp simp: of_nat_0 guard_bits_def word_bits_def simp del: word_of_nat_eq_0_iff)
apply (clarsimp simp: badge_update_def cap_rights_def cap_data_def
guard_update_def guard_as_rawdata_def)
apply (cut_tac p="word2 << 8" and d="of_nat nat1 << 3" and n=8 in is_aligned_add_or)
@ -1644,7 +1642,7 @@ lemma update_cap_rights_and_data:
apply (rule shiftl_less_t2n)
apply (clarsimp simp: guard_bits_def word_of_nat_less)
apply simp
apply (simp add: word_ao_dist shiftr_over_or_dist shiftl_shiftr1 word_size shiftl_mask_is_0
apply (simp add: word_ao_dist shiftr_over_or_dist shiftl_shiftr1 word_size
word_bw_assocs mask_and_mask guard_as_rawdata_def guard_update_def)
apply (subst le_mask_iff[THEN iffD1])
apply (rule plus_one_helper)
@ -1661,6 +1659,7 @@ lemma update_cap_rights_and_data:
apply simp
apply (subst less_mask_eq)
apply (clarsimp simp: guard_bits_def word_of_nat_less)
including no_take_bit
apply (clarsimp simp: guard_bits_def word_of_nat_less word_bits_def unat_of_nat32)
done