(* Author: Lawrence C Paulson, Cambridge University Computer Laboratory Copyright 1996 University of Cambridge Datatypes of agents and messages; Inductive relations "parts", "analz" and "synth" *)(*<*) section‹Theory of Agents and Messages for Security Protocols› theory Message imports "../Setup" begin (*Needed occasionally with spy_analz_tac, e.g. in analz_insert_Key_newK*) lemma [simp] : "A ∪ (B ∪ A) = B ∪ A" by blast (*>*) section‹Agents and Messages› text ‹ All protocol specifications refer to a syntactic theory of messages. Datatype ‹agent› introduces the constant ‹Server› (a trusted central machine, needed for some protocols), an infinite population of friendly agents, and the~‹Spy›: ›