Theory Types
theory Types
imports Main
begin
text‹This is a collection of type synonyms. Note that not all of these type synonyms are 
  used within Strong-Security - some are used in WHATandWHERE-Security.›
type_synonym ('id, 'val) State = "'id ⇒ 'val"
type_synonym ('exp, 'id, 'val) Evalfunction = 
  "'exp ⇒ ('id, 'val) State ⇒ 'val"
type_synonym ('id, 'val, 'com) TConfig = "'com × ('id, 'val) State"
type_synonym ('id, 'val, 'com) TPConfig = 
  "('com list) × ('id, 'val) State"
type_synonym 'com ProgramState = "'com option"
type_synonym ('id, 'val, 'com) PSConfig = 
  "'com ProgramState × ('id, 'val) State"
type_synonym 'com Label = "'com list"
type_synonym ('exp, 'id, 'val, 'com) TLSteps = "
  (('id, 'val, 'com) TConfig × 'com Label 
    × ('id, 'val, 'com) PSConfig) set"
type_synonym ('exp, 'id, 'val, 'com) TLSteps_curry =
"'com ⇒ ('id, 'val) State ⇒ 'com Label ⇒ 'com ProgramState 
  ⇒ ('id, 'val) State ⇒ bool"
type_synonym ('exp, 'id, 'val, 'com) TPSteps = "
  (('id, 'val, 'com) TPConfig × ('id, 'val, 'com) TPConfig) set"
type_synonym ('exp, 'id, 'val, 'com) TPSteps_curry =
"'com list ⇒ ('id, 'val) State ⇒ 'com list ⇒ ('id, 'val) State ⇒ bool"
type_synonym ('exp, 'id, 'val, 'com) TSteps = 
  "(('id, 'val, 'com) TConfig × ('id, 'val, 'com) TPConfig) set"
type_synonym ('exp, 'id, 'val, 'com) TSteps_curry =
"'com ⇒ ('id, 'val) State ⇒ 'com list ⇒ ('id, 'val) State ⇒ bool"
type_synonym ('id, 'd) DomainAssignment = "'id ⇒ 'd::order"
type_synonym 'com Bisimulation_type = "(('com list) × ('com list)) set"
type_synonym ('d, 'exp) Hatch = "'d × 'exp"
type_synonym ('d, 'exp) Hatches = "(('d, 'exp) Hatch) set"
type_synonym ('d, 'exp) lHatch = "'d × 'exp × nat"
type_synonym ('d, 'exp) lHatches = "(('d, 'exp) lHatch) set"
end