package codex

  1. Overview
  2. Docs
The Codex library for building static analysers based on abstract interpretation

Install

dune-project
 Dependency

Authors

Maintainers

Sources

1.0-rc4.tar.gz
md5=bc7266a140c6886add673ede90e335d3
sha512=8da42c0ff2c1098c5f9cb2b5b43b306faf7ac93b8f5ae00c176918cee761f249ff45b29309f31a05bbcf6312304f86a0d5a000eb3f1094d3d3c2b9b4c7f5c386

doc/codex.operator/Operator/Condition/index.html

Module Operator.ConditionSource

We want a choose operation on sets (which normally selects an arbitrary elements in a set) but we want to tell whether two distinct choose(S) operations selected the same element or not.

For this we parameterized the choice function by a choice identifier: Two calls with the same identifier on the same set return the same value. This makes the choice function deterministic (but parameterized by an unknown value).

We also represent sets by decision trees: A union B is really "if(cond) A else B", where cond is a fresh condition variable (that we never use). Thus, a choice can viewed as a valuation of different condition variables. We can thus express that choise_c(S) is equal to one element in the set (we just don't know which one).

We want a choose operation on sets (which normally selects an arbitrary elements in a set) but we want to tell whether two distinct choose(S) operations selected the same element or not.

For this we parameterized the choice function by a choice identifier: Two calls with the same identifier on the same set return the same value. This makes the choice function deterministic (but parameterized by an unknown value).

We also represent sets by decision trees: A union B is really "if(cond) A else B", where cond is a fresh condition variable (that we never use). Thus, a choice can viewed as a valuation of different condition variables. We can thus express that choise_c(S) is equal to one element in the set (we just don't know which one).

Sourcetype t = private int
Sourceval fresh : unit -> t