Skip to content

Latest commit

 

History

History
112 lines (94 loc) · 1.32 KB

atomic_data_structure.md

File metadata and controls

112 lines (94 loc) · 1.32 KB

Atomic Data

It defines all atomic data which will be used in one or many specific process.

Definition of <atomic_data> :

{
  "meta" :  {
    "number_symbols": <int>,
    "number_variables": <int>,
    "number_names": <int>,
    "number_attacker_names": <int>
  },
  "data" :
    [
      <variable> | <name> | <symbol>
    ]
}

Definition of <variable> :

{
  "type": "Variable",
  "label" : <string>,
  "index": <int>,
  "free" : <bool> // if not defined then false
}

Definition of <name> :

{
  "type": "Name",
  "label": <string>,
  "index": <int>
}

Definition of <rewrite_rules> :

{
  "lhs": [<term>,...,<term>]
  "rhs": <term>
}

Definition of <category> :

{
  "type": "Tuple"
}

or

{
  "type": "Constructor"
}

or

{
  "type": "Destructor",
  "rewrite_rules": [
    <rewrite_rules>,
    ...,
    <rewrite_rules>
  ]
}

or

{
  "type": "Projection",
  "tuple": <int>,
  "projection_nb": <int>,
  "rewrite_rules": [
    <rewrite_rules>,
    ...,
    <rewrite_rules>
  ]
}

Definition of <symbol> :

{
  "type": "Symbol",
  "label": <string>,
  "index": <int>,
  "arity": <int>,
  "category": <category>,
  "is_public: <bool>, (optional) // if not defined then false
  "representation": "UserName" | "UserDefined" | "Attacker"
}