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.terms/Terms/Smt/MakeHorn/argument-1-T/UnionFind/index.html

Module T.UnionFind

Union find structure: some terms points to their parents through the set of relations, allowing for accurate representation of relations in the group and storing fewer independent terms.

type 'a t = 'a t
type ('a, 'b) relation = ('a, 'b) Relation.t
type 'a node_through_relation =
  1. | NodeThoughRelation : 'b t * ('a, 'b) relation -> 'a node_through_relation

Existential wrapper for returning the representative

val find_representative : 'a t -> 'a node_through_relation

Find the representative of a node, and the associated relation

check_related a b returns the relation between a and b if they are in the same class.

val union : 'a t -> 'b t -> ('a, 'b) relation -> (unit, ('a, 'b) relation) result

union m n r adds the m--(r)-->n relation to the union find returns Ok () on success, Error rel if m and n are already related via another relation rel and r != rel.