theory Scratch imports Main begin lemma foo: "\a aa b ba ab bb bc. pasDomainAbs initial_aag (cur_domain b) \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a) \ u = Partition a \ s = ((aa, b), ba) \ s' = ((ab, bb), bc) \ states_equiv_for (\x. pasObjectAbs initial_aag x \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a)) (\x. pasIRQAbs initial_aag x \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a)) (\x. pasASIDAbs initial_aag x \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a)) (\x. pasDomainAbs initial_aag x \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a)) (\x. ptr_range x 12) b bb \ pasDomainAbs initial_aag (cur_domain b) \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a) \ cur_domain b = cur_domain bb \ globals_equiv b bb \ scheduler_action b = scheduler_action bb \ work_units_completed b = work_units_completed bb \ equiv_irq_state (machine_state b) (machine_state bb) \ (user_modes ba \ aa = ab) \ ba = bc \ equiv_for (\x. pasObjectAbs initial_aag x = SilcLabel) kheap b bb \ pasDomainAbs initial_aag (cur_domain bb) \ subjectReads (pasPolicy initial_aag) (OrdinaryLabel a) \ cur_domain b = cur_domain bb \ globals_equiv b bb \ scheduler_action b = scheduler_action bb \ work_units_completed b = work_units_completed bb \ equiv_irq_state (machine_state b) (machine_state bb) \ (user_modes ba \ aa = ab) \ ba = bc \ equiv_for (\x. pasObjectAbs initial_aag x = SilcLabel) kheap b bb \ (user_modes ba \ aa = ab) \ ba = bc " using [[simp_legacy_precond = true ]] apply simp apply fast apply (drule(1) mp, simp) apply clarify end