we write f/n to denote that the function symbol f is n-ary.

  • hashing: This theory models a hash function.
    It defines the function symbol h/1 and no equations.
  • asymmetric-encryption: This theory models a public key encryption scheme.
    It defines the function symbols aenc/2, adec/2, and pk/1, which are related by the equation
    [adec(aenc(m, pk(sk)), sk) = m. ] Note that as described in Syntax Description, aenc{x,y}pkB is syntactic sugar for aenc(x,y,pkB).
  • signing: This theory models a signature scheme.
    It defines the function symbols sign/2, verify/3, pk/1, and true, which are related by the equation: verify(sign(m,sk),m,pk(sk))=true.
  • revealing-signing: This theory models a message-revealing signature scheme.
    It defines the function symbols revealSign/2, revealVerify/3, getMessage/1, pk/1, and true, which are related by the equations: revealVerify(revealSign(m,sk),m,pk(sk))=true and getMessage(revealSign(m,sk))=m.
  • symmetric-encryption: This theory models a symmetric encryption scheme.
    It defines the function symbols senc/2 and sdec/2, which are related by the equation: sdec(senc(m,k),k)=m.
  • diffie-hellman: This theory models Diffie-Hellman groups.
    It defines the function symbols inv/1, 1/0, and the symbols ^ and . We use g^a to denote exponentiation in the group and , inv and 1 to model the (multiplicative) abelian group of exponents (the integers modulo the group order). The set of defined equations is:
    (x^y)^z=x^(yz);x^1=x;xy=yx;(xy)z=x(yz);x1=x;xinv(x)=1.
  • xor: This theory models the exclusive-or operation.
    It adds the function symbols /2(also written as XOR/2) and zero/0. is associative and commutative and satisfies the cancellation equations:
    xy=yx;(xy)z=x(yz);xzero=x;xx=zero
  • multiset: This theory introduces the associative-commutative operator + which is usually used to model multisets.

Reserved function symbol names

Due to their use in built-in message theories, the following function names cannot be user-defined: mun,one,exp,mult,inv,pmult,em.
If a theory contains any of these as user-defined function symbol the parser will reject the file, stating which reserved name was redeclared.