The predicate SgKey has a variant success pattern (Sg,Proj,Prime) on the domain AbsInt. The and-or graph node is Id, and is called from the program points in list Parents.
Usage:complete(SgKey,AbsInt,Sg,Proj,Prime,Id,Parents)
The predicate SgKey has in all variants success pattern (Sg,Proj,Prime) on the domain AbsInt. If Lub is yes, Proj and Prime are substitutions, if Lub is no, they are lists of substitutions.
The predicate is of type data.
Before calling the goal at program point PointKey, there is a variant in which Call on the domain AbsInt holds upon the program clause variables Vars_u. These variables need be sorted conveniently so that Call makes sense. The and-or graph node that causes this is Id and the call originated to the goal at this program point generates and-or graph node Child.
Usage:memo_table(LitKey,AbsInt,Id,Child,Vars_u,Call)
Before calling the goal at program point PointKey, in all variants Call on the domain AbsInt holds upon the program clause variables Vars_u. If Lub is yes, Call is a substitution, if If Lub is no, Call is a list of substitutions.
The predicate is of type data.
Used to keep the trace of the parents in the and-or graph for the dd/di fixpoints. The parents are used to choose previous aproximations to apply the widening operators on calls The and-or graph node is Id, and Parents is a list of couples of graph node and program points.
The predicate is of type data.
Erases all data in this module for the analysis domain AbsInt.
Usage:get_parent_key(LitKey,Id,AbsInt,CKey)
CKey is the key that corresponds to Id, it may not correspong to the decoding LitKey because of how meta_calls are indexed in the fixpoints
Usage:get_complete(SgKey,AbsInt,Sg,Proj,Prime,Id,Ps,Ref)
Usage:get_memo_table(LitKey,AbsInt,Id,Child,Vars,Call,Ref)
Usage:get_raw_success(ClKey,AbsInt,Id,Sg,Proj,Prime,Ref)
Usage:add_parent_complete(SgKey,AbsInt,Id,PId,LitKey)
Usage:del_parent_complete(SgKey,AbsInt,Id,PId,LitKey,NPs)
Usage:patch_parents(Ref,Memo,Key,Id,NewFs,Fs)
Usage:delete_complete(SgKey,AbsInt,Id)
Deletes the information of the complete with Id. This predicate does not delete recursively following its parents.
Usage:delete_plai_db_one_clause(PredKey,ClKey,Id,AbsInt)
Removes from plai_db the information relative to the clause ClKey of complete Id for the domain AbsInt
Usage:erase_previous_memo_tables_and_parents(Body,AbsInt,ClKey,Id)
We use Body to erase all the memo_tables and all the pointers in the dependency graph that are not longer valid
Usage:erase_last_memo_table(AbsInt,ClKey,Id)
Usage:erase_previous_memo_lubs(Body,ClKey)
This predicate traverses Body and removes the existing memo_lubs. When Body is finished, we also remove the memo-lub for the end of the clause using ClKey.
Usage:erase_previous_parents_info(Id,Goal,AbsInt,Key,NewN)
Id is the node identifier of the complete that has this Goal in its list of parents. If Id is no then nothing needs to be done (it is a builtin)
Usage:add_invalid_call(SgKey,AbsInt,LitKey,Id,Sg,Proj)
Usage:store_raw_success(ClKey,AbsInt,Id,Sg,Proj,LPrime)
Usage:get_raw_success(ClKey,AbsInt,Id,Sg,Proj,LPrime)
plai_db_id(no). plai_db_id(X) :- int(X).