package soteria

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

Module Symex.Value

type +'a t

The type of symbolic values, parameterized by their type. For example, sbool t represents a symbolic boolean.

Values also expose an Expr module for their syntactic representation.

type +'a ty

Type of values.

type sbool

The type for booleans.

val is_bool_ty : 'a ty -> bool

Whether the given type is sbool ty

val not : sbool t -> sbool t

not b returns the logical negation of boolean b.

val ppa : Format.formatter -> 'a t -> unit
val sem_eq_untyped : 'a t -> 'b t -> sbool t
val mk_var : Symex.Var.t -> 'a ty -> 'a t

mk_var var ty creates a symbolic variable with name var and type ty.

val to_bool : 'a t -> bool option

to_bool v returns Some b if v is a concrete boolean b, or None if v is symbolic.

val of_bool : bool -> sbool t

of_bool b creates a concrete boolean value from b.

module Expr : Symex.Value.Expr with type 'a ty := 'a ty and type 'a v := 'a t

Expr.t describes a syntactic representation of a value of type 'a v. Syntactic objects, unlike semantic values, can contain "free" variables and operations such as substitution have meaning.