Title: CryptHOL
Author: Andreas Lochbihler
Submission date: 2017-05-05

CryptHOL provides a framework for formalising cryptographic arguments in Isabelle/HOL. It shallowly embeds a probabilistic functional programming language in higher order logic. The language features monadic sequencing, recursion, random sampling, failures and failure handling, and black-box access to oracles. Oracles are probabilistic functions which maintain hidden state between different invocations. All operators are defined in the new semantic domain of generative probabilistic values, a codatatype. We derive proof rules for the operators and establish a connection with the theory of relational parametricity. Thus, the resuting proofs are trustworthy and comprehensible, and the framework is extensible and widely applicable.

The framework is used in the accompanying AFP entry "Game-based Cryptography in HOL". There, we show-case our framework by formalizing different game-based proofs from the literature. This formalisation continues the work described in the author's ESOP 2016 paper.

  author  = {Andreas Lochbihler},
  title   = {CryptHOL},
  journal = {Archive of Formal Proofs},
  month   = may,
  year    = 2017,
  note    = {\url{},
            Formal proof development},
  ISSN    = {2150-914x},
License: BSD License
Depends on: Applicative_Lifting, Coinductive, Landau_Symbols, Monad_Normalisation, Monomorphic_Monad, Probabilistic_While
Used by: Constructive_Cryptography, Game_Based_Crypto, Sigma_Commit_Crypto