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.domains/Domains/Extend/MakeForAADT/argument-1-D/Scalar/Context/index.html

Module Scalar.Context

type t
val level : t -> int
val copy : t -> t

Create an independent copy of the context.

val assign : t -> t -> unit

assign ctx1 ctx2 makes ctx1 a copy of ctx2.

Types for serialization.

type 'a in_tuple

The type of the tuples of argument to nondet (i.e., arguments of a phi function).

type empty_tuple
val empty_tuple : unit -> empty_tuple in_tuple
type 'a in_acc = bool * 'a in_tuple

An accumulator is a set of arguments to nondet, and an accumulated inclusion check.

type 'a out_tuple

The type of the result of the phi function.

type ('a, 'b) result =
  1. | Result : bool * 'some in_tuple * (t -> 'some out_tuple -> 'a * 'b out_tuple) -> ('a, 'b) result

We use a GADT because 'some is existentially quantified: we don't want the type of in_tuple to appear in serialization function, as, for instance, what we put in in in_tuple can depend on some condition.

The boolean expresses whether the second operand of the serialization was included in the first one.