lh-l4v/camkes/adl-spec/Library_CAMKES.thy

78 lines
1.8 KiB
Plaintext

(*
* Copyright 2014, NICTA
*
* This software may be distributed and modified according to the terms of
* the GNU General Public License version 2. Note that NO WARRANTY is provided.
* See "LICENSE_GPLv2.txt" for details.
*
* @TAG(NICTA_GPL)
*)
(*<*)
theory Library_CAMKES
imports Types_CAMKES Wellformed_CAMKES
begin
(*>*)
(*<*)
(* Definitions of some built-in CAmkES entities. *)
definition
seL4RPC :: connector
where
"seL4RPC \<equiv> SyncConnector (Native RPC)"
lemma[simp]: "wellformed_connector seL4RPC"
by (auto simp:wellformed_connector_def seL4RPC_def)
definition
seL4Asynch :: connector
where
"seL4Asynch \<equiv> AsyncConnector (Native AsynchronousEvent)"
lemma[simp]: "wellformed_connector seL4Asynch"
by (auto simp:wellformed_connector_def seL4Asynch_def)
definition
seL4SharedData :: connector
where
"seL4SharedData \<equiv> MemoryConnector (Native SharedData)"
lemma[simp]: "wellformed_connector seL4SharedData"
by (auto simp:wellformed_connector_def seL4SharedData_def)
(* These connectors aren't literally identical, but for the purposes of the architectural model they
* are.
*)
definition
seL4RPCSimple :: connector
where
"seL4RPCSimple \<equiv> seL4RPC"
lemma[simp]: "wellformed_connector seL4RPCSimple"
by (simp add:seL4RPCSimple_def)
definition
seL4RPCCall :: connector
where
"seL4RPCCall \<equiv> seL4RPC"
lemma[simp]: "wellformed_connector seL4RPCCall"
by (simp add:seL4RPCCall_def)
definition
seL4Notification :: connector
where
"seL4Notification \<equiv> seL4Asynch"
lemma[simp]: "wellformed_connector seL4Notification"
by (simp add:seL4Notification_def)
lemmas connector_simps =
seL4SharedData_def
seL4RPC_def
seL4Asynch_def
seL4RPCSimple_def
seL4RPCCall_def
seL4Notification_def
lemmas [wellformed_CAMKES_simps] =
connector_simps
(*>*)
(*<*)end(*>*)