https://github.com/EasyCrypt/easycrypt
Revision 4015176a49ec768771c154bce0dfdc566c20b3d0 authored by Adrien Koutsos on 03 May 2022, 15:22:13 UTC, committed by Adrien Koutsos on 03 May 2022, 15:22:13 UTC
The opacity of a module is either Opaque (default) or Open.
Essentially, the opacity tells what is the intrinsic cost of an
abstract module when it is called.

If `A` has type `M[f : [c, ...]]` then:
- if A module type is opaque, then calling A.f costs `[A.f : '1]`
- if A module type is open, then calling A.f costs `c`

Opacity is denoted by adding the `open` or `opaque` keyword in a
module complexity restriction, e.g. `M[open f : ...]`.
No explicit opacity means Opaque.
1 parent 17ae2d3
History
Tip revision: 4015176a49ec768771c154bce0dfdc566c20b3d0 authored by Adrien Koutsos on 03 May 2022, 15:22:13 UTC
abstract module now have an opacity, giving their cost when called
Tip revision: 4015176
File Mode Size
.github
config
examples
lint
scripts
src
theories
.dir-locals.el -rw-r--r-- 285 bytes
.gitignore -rw-r--r-- 118 bytes
AUTHORS -rw-r--r-- 543 bytes
LICENSE -rw-r--r-- 1.2 KB
Makefile -rw-r--r-- 1.0 KB
README.md -rw-r--r-- 7.9 KB
default.nix -rw-r--r-- 494 bytes
dune -rw-r--r-- 116 bytes
dune-project -rw-r--r-- 388 bytes
easycrypt.opam -rw-r--r-- 1.2 KB
easycrypt.opam.template -rw-r--r-- 915 bytes
easycrypt.png -rw-r--r-- 182.6 KB

README.md

back to top