All Projects → coq-community → alea

coq-community / alea

Licence: LGPL-2.1 license
Coq library for reasoning on randomized algorithms [maintainers=@anton-trunov,@volodeyka]

Programming Languages

Coq
218 projects

Projects that are alternatives of or similar to alea

MtacAR
Mtac in Agda
Stars: ✭ 29 (+45%)
Mutual labels:  coq, monad
Category Theory
An axiom-free formalization of category theory in Coq for personal study and practical work
Stars: ✭ 562 (+2710%)
Mutual labels:  coq, monad
Ceramist
Verified hash-based AMQ structures in Coq
Stars: ✭ 107 (+435%)
Mutual labels:  coq, probability
actuar
Actuarial functions and heavy tailed distributions for R
Stars: ✭ 19 (-5%)
Mutual labels:  probability
opam-coq-archive
Archive for all Coq related OPAM packages organized in various repositories
Stars: ✭ 101 (+405%)
Mutual labels:  coq
coq-library-undecidability
A library of mechanised undecidability proofs in the Coq proof assistant.
Stars: ✭ 84 (+320%)
Mutual labels:  coq
fcsl-pcm
Partial Commutative Monoids
Stars: ✭ 20 (+0%)
Mutual labels:  coq
awesome-conformal-prediction
A professionally curated list of awesome Conformal Prediction videos, tutorials, books, papers, PhD and MSc theses, articles and open-source libraries.
Stars: ✭ 998 (+4890%)
Mutual labels:  probability
coq-big-o
A general yet easy-to-use formalization of Big O, Big Theta, and more based on seminormed vector spaces.
Stars: ✭ 31 (+55%)
Mutual labels:  coq
coq-program-verification-template
Template project for program verification in Coq
Stars: ✭ 26 (+30%)
Mutual labels:  coq
bignums
Coq library of arbitrarily large numbers, providing BigN, BigZ, BigQ that used to be part of the standard library [maintainers=@proux01,@erikmd]
Stars: ✭ 20 (+0%)
Mutual labels:  coq
PUMPKIN-PATCH
Proof Updater Mechanically Passing Knowledge Into New Proofs, Assisting The Coq Hacker
Stars: ✭ 43 (+115%)
Mutual labels:  coq
mchmm
Markov Chains and Hidden Markov Models in Python
Stars: ✭ 89 (+345%)
Mutual labels:  probability
bullet-scala
A monadic library to resolve object relations with the aim of avoiding the N+1 query problem.
Stars: ✭ 53 (+165%)
Mutual labels:  monad
vericert
A formally verified high-level synthesis tool based on CompCert and written in Coq.
Stars: ✭ 63 (+215%)
Mutual labels:  coq
gospn
A free, open-source inference and learning library for Sum-Product Networks (SPN)
Stars: ✭ 24 (+20%)
Mutual labels:  probability
appliedstats
📊 Methods of Applied Statistics Course Textbook Repository
Stars: ✭ 134 (+570%)
Mutual labels:  probability
imm
Intermediate Memory Model (IMM) and compilation correctness proofs for it
Stars: ✭ 15 (-25%)
Mutual labels:  coq
kami
A Platform for High-Level Parametric Hardware Specification and its Modular Verification
Stars: ✭ 119 (+495%)
Mutual labels:  coq
freAST
Fast, simple Free Monads using ScalaMeta macro annotations. Port of Freasy-Monad.
Stars: ✭ 14 (-30%)
Mutual labels:  monad

ALEA

Docker CI Contributing Code of Conduct Zulip DOI

ALEA is a library for reasoning on randomized algorithms in Coq, based on interpreting programs inside a monad as probability distributions.

Meta

Building and installation instructions

The easiest way to install the latest released version of ALEA is via OPAM:

opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq-alea

To instead build and install manually, do:

git clone https://github.com/coq-community/alea.git
cd alea
make   # or make -j <number-of-cores-on-your-machine> 
make install

Files described in the paper

The library and its underlying theory is described in the paper Proofs of randomized algorithms in Coq, Science of Computer Programming 74(8), 2009, pp. 568-589. This repository used to be maintained at coq-contribs/random. For more information visit https://www.lri.fr/~paulin/ALEA.

Coq source files mentioned in the paper are described below.

Misc.v

A few preliminary notions, in particular primitives for reasoning classically in Coq, are defined.

Ccpo.v

The definition of structures for ordered sets and ω-complete partial orders (a monotonic sequence has a least upper bound). We define the type O1 → m O2 of monotonic functions and define the fixpoint-construction for monotonic functionals. Continuity is also defined.

Utheory.v

An axiomatisation of the interval [0,1]. The type [0,1] is given a cpo structure. We have the predicates ≤ and ==, a least element 0 and a least upper bound on all monotonic sequences of elements of [0,1].

Uprop.v

Derived operations and properties of operators on [0,1].

Monads.v

Definition of the basic monad for randomized constructions, the type α is mapped to the type (α → [0,1]) → m [0,1] of measure functions. We define the unit and star constructions and prove that they satisfy the basic monadic properties. A measure will be a function of type (α → [0,1]) → m [0,1] which enjoys extra properties such as stability with respect to basic operations and continuity. We prove that functions produced by unit and star satisfy these extra properties under appropriate assumptions.

Probas.v

Definition of a dependent type for distributions on a type α. A distribution on a type α is a record containing a function µ of type (α → [0,1]) → m [0,1] and proofs that this function enjoys the stability properties of measures.

Prog.v

Definition of randomized programs constructions. We define the probabilistic choice and conditional constructions and a fixpoint operator obtained by iterating a monotonic functional. We introduce an axiomatic semantics for these randomized programs -- let e be a randomized expression of type τ, p be an element of [0,1] and q be a function of type τ → [0,1], we define p ≤ [e](q) to be the property -- the measure of q by the distribution associated to the expression e is not less than p. In the case q is the characteristic function of a predicate Q, p ≤ [e](q) can be interpreted as "the probability for the result of the evaluation of e to satisfy Q is not less than p". In the particular case where q is the constant function equal to 1, the relation p ≤ [e](q) can be interpreted as "the probability for the evaluation of e to terminate is not less than p".

Cover.v

A definition of what it means for a function f to be the characteristic function of a predicate P. Defines also characteristic functions for decidable predicates.

Choice.v

A proof of composition of two runs of a probabilistic program, when a choice can improve the quality of the result. Given two randomized expressions p1 and p2 of type τ and a function Q to be estimated, we consider a choice function such that the value of Q for choice(x,y) is not less than Q(x)+Q(y). We prove that if pi evaluates Q not less than ki and terminates with probability 1 then the expression choice(p1,p2) evaluates Q not less than k1(1-k2)+k2 (which is greater than both k1 and k2 when k1 and k2 are not equal to 0).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].