package coq-core

  1. Overview
  2. Docs
The Coq Proof Assistant -- Core Binaries and Tools

Install

Dune Dependency

Authors

Maintainers

Sources

coq-8.20.0.tar.gz
md5=66e57ea55275903bef74d5bf36fbe0f1
sha512=1a7eac6e2f58724a3f9d68bbb321e4cfe963ba1a5551b9b011db4b3f559c79be433d810ff262593d753770ee41ea68fbd6a60daa1e2319ea00dff64c8851d70b

doc/coq-core.lib/AcyclicGraph/Make/index.html

Module AcyclicGraph.MakeSource

Parameters

module Point : Point

Signature

Sourcetype t
Sourceval empty : t
Sourceval check_invariants : required_canonical:(Point.t -> bool) -> t -> unit
Sourceexception AlreadyDeclared
Sourceval add : ?rank:int -> Point.t -> t -> t

All points must be pre-declared through this function before they can be mentioned in the others. NB: use a large rank to keep the node canonical

Sourceexception Undeclared of Point.t
Sourceval check_declared : t -> Point.Set.t -> unit
  • raises Undeclared

    if one of the points is not present in the graph.

Sourcetype 'a check_function = t -> 'a -> 'a -> bool
Sourceval enforce_eq : Point.t -> Point.t -> t -> t option
Sourceval enforce_leq : Point.t -> Point.t -> t -> t option
Sourceval enforce_lt : Point.t -> Point.t -> t -> t option
Sourcetype explanation = Point.t * (constraint_type * Point.t) list

Type explanation is used to decorate error messages to provide a useful explanation why a given constraint is rejected. It is composed of a starting universe u0 and a path of universes and relation kinds (r1,u1);..;(rn,un) meaning u0 <(r1) u1 <(r2) ... <(rn) un (where <(ri) is the relation symbol denoted by ri). When the rejected constraint is a a <= b or a < b then the path is fromb to a, ie u0 == b and un == a. when the rejected constraint is an equality the path may go in either direction. Note that each step does not necessarily correspond to an actual constraint, but reflect how the system stores the graph and may result from combination of several Constraints.t...

Sourceval get_explanation : (Point.t * constraint_type * Point.t) -> t -> explanation

Assuming that the corresponding call to enforce_* returned None, this will give a trace for the failure.

Sourcetype 'a constraint_fold = (Point.t * constraint_type * Point.t) -> 'a -> 'a
Sourceval constraints_of : t -> 'a constraint_fold -> 'a -> 'a * Point.Set.t list
Sourceval constraints_for : kept:Point.Set.t -> t -> 'a constraint_fold -> 'a -> 'a
Sourceval domain : t -> Point.Set.t
Sourceval choose : (Point.t -> bool) -> t -> Point.t -> Point.t option
High-level representation
Sourcetype node =
  1. | Alias of Point.t
  2. | Node of bool Point.Map.t
    (*

    Nodes v s.t. u < v (true) or u <= v (false)

    *)
Sourceval repr : t -> repr
OCaml

Innovation. Community. Security.