Theory Diffie_Hellman_CC
theory Diffie_Hellman_CC
  imports
    Game_Based_Crypto.Diffie_Hellman
    "../Asymptotic_Security"
    "../Construction_Utility"
    "../Specifications/Key" 
    "../Specifications/Channel"
begin
hide_const (open) Resumption.Pause Monomorphic_Monad.Pause Monomorphic_Monad.Done
no_notation Sublist.parallel (infixl ‹∥› 50)
no_notation plus_oracle (infix ‹⊕⇩O› 500)
section ‹Diffie-Hellman construction›
locale diffie_hellman =
    auth: ideal_channel "id :: 'grp ⇒ 'grp" False +
    key: ideal_key "carrier 𝒢" +
    cyclic_group 𝒢
  for
    𝒢 :: "'grp cyclic_group" (structure)
begin
subsection ‹Defining user callees›