package lambdapi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=1066aed2618fd8e6a400c5147dbf55ea977ce8d3fe2e518ac6785c6775a1b8be
sha512=f7f499626aba92e070ae69581299a58525973fdbfd04a160ed3ac89209fb6cbe307b816d0b23e1b75bc83467ce8b4b0530c6f9816eaf58f7a07fde65a450106c
doc/lambdapi.core/Core/Tree/CP/index.html
Module Tree.CPSource
Module providing a representation for pools of conditions.
type t = {variables : int Lplib.Extra.IntMap.t;(*An association
*)(e, v)maps the slot of a pattern variable (the first argument of aTerm.term.Patt) to its slot in the arrayvarsof theEval.tree_walkfunction. It is used to remember non linearity constraints.nl_conds : PSet.t;(*Set of convertibility constraints
*)(i,j)withi < j. The constraint(i,j)is satisfied if the terms stored at indicesiandjin thevarsarray of theEval.tree_walkfunction are convertible.fv_conds : int array Lplib.Extra.IntMap.t;(*A mapping of
*)itoxsrepresents a free variable condition that can only be satisfied if only the free variables ofxappear in the term stored at slotiin thevarsarray ofEval.tree_walk.
}A pool of (convertibility and free variable) conditions.
register_nl slot i pool registers the fact that the slot slot in the vars array correspond to a term stored at index i in the environment for the RHS. The first time that such a slot is associated to i, it is registered to serve as a reference point for testing convertibility when (and if) another such slot is (ever) encountered. When that is the case, a convertibility constraint is registered between the term stored in the slot slot and the term stored in the reference slot.
register_fv slot xs pool registers a free variables constraint for the variables in xs on the slot slot of the vars array in pool.
constrained_nl i pool tells whether index i in the RHS's environment has already been associated to a variable of the vars array.
is_contained cond pool tells whether the condition cond is contained in the pool pool.
remove cond pool removes condition cond from the pool pool.
choose pools selects a condition to check in the pools of pools. The heuristic is to first select convertibility constraints.