equal
deleted
inserted
replaced
13 |
13 |
14 theory Proto imports Guard_Public begin |
14 theory Proto imports Guard_Public begin |
15 |
15 |
16 subsection{*protocols*} |
16 subsection{*protocols*} |
17 |
17 |
18 types rule = "event set * event" |
18 type_synonym rule = "event set * event" |
19 |
19 |
20 abbreviation |
20 abbreviation |
21 msg' :: "rule => msg" where |
21 msg' :: "rule => msg" where |
22 "msg' R == msg (snd R)" |
22 "msg' R == msg (snd R)" |
23 |
23 |
24 types proto = "rule set" |
24 type_synonym proto = "rule set" |
25 |
25 |
26 definition wdef :: "proto => bool" where |
26 definition wdef :: "proto => bool" where |
27 "wdef p == ALL R k. R:p --> Number k:parts {msg' R} |
27 "wdef p == ALL R k. R:p --> Number k:parts {msg' R} |
28 --> Number k:parts (msg`(fst R))" |
28 --> Number k:parts (msg`(fst R))" |
29 |
29 |
153 apply (drule has_only_SaysD, simp+) |
153 apply (drule has_only_SaysD, simp+) |
154 by (clarify, case_tac x, auto) |
154 by (clarify, case_tac x, auto) |
155 |
155 |
156 subsection{*types*} |
156 subsection{*types*} |
157 |
157 |
158 types keyfun = "rule => subs => nat => event list => key set" |
158 type_synonym keyfun = "rule => subs => nat => event list => key set" |
159 |
159 |
160 types secfun = "rule => nat => subs => key set => msg" |
160 type_synonym secfun = "rule => nat => subs => key set => msg" |
161 |
161 |
162 subsection{*introduction of a fresh guarded nonce*} |
162 subsection{*introduction of a fresh guarded nonce*} |
163 |
163 |
164 definition fresh :: "proto => rule => subs => nat => key set => event list |
164 definition fresh :: "proto => rule => subs => nat => key set => event list |
165 => bool" where |
165 => bool" where |