equal
deleted
inserted
replaced
83 by simp |
83 by simp |
84 |
84 |
85 lemma Crypt_isnt_MPair [iff]: "~ is_MPair (Crypt K X)" |
85 lemma Crypt_isnt_MPair [iff]: "~ is_MPair (Crypt K X)" |
86 by simp |
86 by simp |
87 |
87 |
88 syntax not_MPair :: "msg => bool" |
88 abbreviation |
89 |
89 not_MPair :: "msg => bool" |
90 translations "not_MPair X" == "~ is_MPair X" |
90 "not_MPair X == ~ is_MPair X" |
91 |
91 |
92 lemma is_MPairE: "[| is_MPair X ==> P; not_MPair X ==> P |] ==> P" |
92 lemma is_MPairE: "[| is_MPair X ==> P; not_MPair X ==> P |] ==> P" |
93 by auto |
93 by auto |
94 |
94 |
95 declare is_MPair_def [simp del] |
95 declare is_MPair_def [simp del] |
367 Says A' B X => if A=A' then insert X (knows' A evs) else knows' A evs |
367 Says A' B X => if A=A' then insert X (knows' A evs) else knows' A evs |
368 | Gets A' X => if A=A' then insert X (knows' A evs) else knows' A evs |
368 | Gets A' X => if A=A' then insert X (knows' A evs) else knows' A evs |
369 | Notes A' X => if A=A' then insert X (knows' A evs) else knows' A evs |
369 | Notes A' X => if A=A' then insert X (knows' A evs) else knows' A evs |
370 ))" |
370 ))" |
371 |
371 |
372 translations "spies" == "knows Spy" |
372 abbreviation |
373 |
373 spies' :: "event list => msg set" |
374 syntax spies' :: "event list => msg set" |
374 "spies' == knows' Spy" |
375 |
|
376 translations "spies'" == "knows' Spy" |
|
377 |
375 |
378 subsubsection{*decomposition of knows into knows' and initState*} |
376 subsubsection{*decomposition of knows into knows' and initState*} |
379 |
377 |
380 lemma knows_decomp: "knows A evs = knows' A evs Un (initState A)" |
378 lemma knows_decomp: "knows A evs = knows' A evs Un (initState A)" |
381 by (induct evs, auto split: event.split simp: knows.simps) |
379 by (induct evs, auto split: event.split simp: knows.simps) |
451 ))" |
449 ))" |
452 |
450 |
453 constdefs knows_max :: "agent => event list => msg set" |
451 constdefs knows_max :: "agent => event list => msg set" |
454 "knows_max A evs == knows_max' A evs Un initState A" |
452 "knows_max A evs == knows_max' A evs Un initState A" |
455 |
453 |
456 consts spies_max :: "event list => msg set" |
454 abbreviation |
457 |
455 spies_max :: "event list => msg set" |
458 translations "spies_max evs" == "knows_max Spy evs" |
456 "spies_max evs == knows_max Spy evs" |
459 |
457 |
460 subsubsection{*basic facts about @{term knows_max}*} |
458 subsubsection{*basic facts about @{term knows_max}*} |
461 |
459 |
462 lemma spies_max_spies [iff]: "spies_max evs = spies evs" |
460 lemma spies_max_spies [iff]: "spies_max evs = spies evs" |
463 by (induct evs, auto simp: knows_max_def split: event.splits) |
461 by (induct evs, auto simp: knows_max_def split: event.splits) |