package codex

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Make.ContextSource

Sourceval level : t -> int
Sourceval copy : t -> t

Create an independent copy of the context.

Sourceval assign : t -> t -> unit

assign ctx1 ctx2 makes ctx1 a copy of ctx2.

Types for serialization.

Sourcetype 'a in_tuple

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

Sourcetype empty_tuple
Sourceval empty_tuple : unit -> empty_tuple in_tuple
Sourcetype 'a in_acc = bool * 'a in_tuple

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

Sourcetype 'a out_tuple

The type of the result of the phi function.

Sourcetype ('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.