package frama-c

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type
type t
val join : t -> t -> t

Must be idempotent (join a a = a), commutative, and associative.

val bottom : t

Must verify that forall a, join a bottom = a.

val is_included : t -> t -> bool

Must verify: a is_included b <=> a join b = b. The dataflow does not require this function.

val join_and_is_included : t -> t -> t * bool

This function is used by the dataflow algorithm to determine if something has to be recomputed. Joining and inclusion testing are similar operations, so it is often more efficient to do both at the same time (e.g. when joining with bottom).

Instead of defining it directly, it can be defined from join and equal, or from is_included, for instance by if is_included new old then (true,old) else (false, join old new) or let j = join old new in (equal j new, j).

val pretty : Format.formatter -> t -> unit

Display the contents of an element of the lattice.