equal
deleted
inserted
replaced
20 apply (rule exI [of _ "agent_case 0 (\<lambda>n. n + 2) 1"]) |
20 apply (rule exI [of _ "agent_case 0 (\<lambda>n. n + 2) 1"]) |
21 apply (simp add: inj_on_def split: agent.split) |
21 apply (simp add: inj_on_def split: agent.split) |
22 done |
22 done |
23 |
23 |
24 text{*Server knows all long-term keys; other agents know only their own*} |
24 text{*Server knows all long-term keys; other agents know only their own*} |
25 primrec |
25 |
|
26 overloading |
|
27 initState \<equiv> initState |
|
28 begin |
|
29 |
|
30 primrec initState where |
26 initState_Server: "initState Server = Key ` range shrK" |
31 initState_Server: "initState Server = Key ` range shrK" |
27 initState_Friend: "initState (Friend i) = {Key (shrK (Friend i))}" |
32 | initState_Friend: "initState (Friend i) = {Key (shrK (Friend i))}" |
28 initState_Spy: "initState Spy = Key`shrK`bad" |
33 | initState_Spy: "initState Spy = Key`shrK`bad" |
|
34 |
|
35 end |
29 |
36 |
30 |
37 |
31 subsection{*Basic properties of shrK*} |
38 subsection{*Basic properties of shrK*} |
32 |
39 |
33 (*Injectiveness: Agents' long-term keys are distinct.*) |
40 (*Injectiveness: Agents' long-term keys are distinct.*) |