src/HOL/Auth/Guard/Extensions.thy
changeset 20768 1d478c2d621f
parent 20217 25b068a99d2b
child 21404 eb85850d3eb7
equal deleted inserted replaced
20767:9bc632ae588f 20768:1d478c2d621f
    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)