theory ArchArch_IF

lemma flush_table_reads_respects:
  "reads_respects aag l \<top> (flush_table pd asid vptr pt)" apply (rule reads_respects_unobservable_unit_return) apply (rule flush_table_states_equiv_for) apply (rule flush_table_cur_thread) apply (rule flush_table_cur_domain) apply (rule flush_table_sched_act) apply (rule flush_table_wuc) apply wp done

(* Proof state trace *)
proof (prove)
goal (1 subgoal):
 1. reads_respects aag l (\<lambda>_. True) (flush_table pd asid vptr pt) proof (prove)
goal (6 subgoals):
 1. \<And>P Q R S st. \<lbrace>states_equiv_for P Q R S st\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>_. states_equiv_for P Q R S st\<rbrace>
 2. \<And>P. \<lbrace>\<lambda>s. P (cur_thread s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (cur_thread s)\<rbrace>
 3. \<And>P. \<lbrace>\<lambda>s. P (cur_domain s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (cur_domain s)\<rbrace>
 4. \<And>P. \<lbrace>\<lambda>s. P (scheduler_action s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (scheduler_action s)\<rbrace>
 5. \<And>P. \<lbrace>\<lambda>s. P (work_units_completed s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (work_units_completed s)\<rbrace>
 6. \<And>P. \<lbrace>\<lambda>s. P (irq_state_of_state s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (irq_state_of_state s)\<rbrace> proof (prove)
goal (5 subgoals):
 1. \<And>P. \<lbrace>\<lambda>s. P (cur_thread s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (cur_thread s)\<rbrace>
 2. \<And>P. \<lbrace>\<lambda>s. P (cur_domain s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (cur_domain s)\<rbrace>
 3. \<And>P. \<lbrace>\<lambda>s. P (scheduler_action s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (scheduler_action s)\<rbrace>
 4. \<And>P. \<lbrace>\<lambda>s. P (work_units_completed s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (work_units_completed s)\<rbrace>
 5. \<And>P. \<lbrace>\<lambda>s. P (irq_state_of_state s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (irq_state_of_state s)\<rbrace> proof (prove)
goal (4 subgoals):
 1. \<And>P. \<lbrace>\<lambda>s. P (cur_domain s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (cur_domain s)\<rbrace>
 2. \<And>P. \<lbrace>\<lambda>s. P (scheduler_action s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (scheduler_action s)\<rbrace>
 3. \<And>P. \<lbrace>\<lambda>s. P (work_units_completed s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (work_units_completed s)\<rbrace>
 4. \<And>P. \<lbrace>\<lambda>s. P (irq_state_of_state s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (irq_state_of_state s)\<rbrace> proof (prove)
goal (3 subgoals):
 1. \<And>P. \<lbrace>\<lambda>s. P (scheduler_action s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (scheduler_action s)\<rbrace>
 2. \<And>P. \<lbrace>\<lambda>s. P (work_units_completed s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (work_units_completed s)\<rbrace>
 3. \<And>P. \<lbrace>\<lambda>s. P (irq_state_of_state s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (irq_state_of_state s)\<rbrace> proof (prove)
goal (2 subgoals):
 1. \<And>P. \<lbrace>\<lambda>s. P (work_units_completed s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (work_units_completed s)\<rbrace>
 2. \<And>P. \<lbrace>\<lambda>s. P (irq_state_of_state s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (irq_state_of_state s)\<rbrace> proof (prove)
goal (1 subgoal):
 1. \<And>P. \<lbrace>\<lambda>s. P (irq_state_of_state s)\<rbrace> flush_table pd asid vptr pt \<lbrace>\<lambda>rv s. P (irq_state_of_state s)\<rbrace> proof (prove)
goal:
No subgoals!