Files
rosenpass/analysis/prelude/basic.mpv
Karolin Varner 137cd5e85a add proverif analysis of Rosenpass, the protocol
The analysis was conducted as joint effort between @koraa and @blipp.

Co-authored-by: Benjamin Lipp <blipp@mailbox.org>
2023-02-23 20:46:22 +01:00

46 lines
1.0 KiB
Plaintext

#pragma once
#include "prelude/cpp.mpv"
@module basic
type Atom.
letfun Atom_new =
new a:Atom;
a.
type Unit.
const unit:Atom.
channel C.
#define CODEIMPL private
#define DUMMY(x) MCAT(MCAT(MCAT(dummy_, x), _), __LINE__)
#define ASSERT(x) if x then DUMMY(assert) <- unit
#define REP0(x) 0
#define REP1(x) (x)
#define REP2(x) (x) | (x)
#define REP3(x) REP2(x) | (x)
#define REP4(x) REP3(x) | (x)
#define REP5(x) REP4(x) | (x)
#define REP6(x) REP5(x) | (x)
#define REP7(x) REP6(x) | (x)
#define REP8(x) REP7(x) | (x)
#define REP9(x) REP8(x) | (x)
#define REP10(x) REP9(x) | (x)
#define REP11(x) REP10(x) | (x)
#define REP12(x) REP11(x) | (x)
#define REP13(x) REP12(x) | (x)
#define REP14(x) REP13(x) | (x)
#define REP15(x) REP14(x) | (x)
#define REP16(x) REP15(x) | (x)
#define REP17(x) REP16(x) | (x)
#define REP18(x) REP17(x) | (x)
#define REP19(x) REP18(x) | (x)
#define REP20(x) REP19(x) | (x)
#define REPdisable(x) REP0(x)
#define REPunbounded(x) !(x)
#define REP(n, x) CAT(REP, n)(x)
#define NOP DUMMY(nop) <- unit