Properties related to sharing/aliasing, groundness

These properties are part of the native_props library.

Usage and interface

Documentation on exports

PROPERTYmshare/1
mshare(X)

X contains all sharing sets [JL88,MH89b] which specify the possible variable occurrences in the terms to which the variables involved in the clause may be bound. Sharing sets are a compact way of representing groundness of variables and dependencies between variables. This representation is however generally difficult to read for humans. For this reason, this information is often translated to ground/1, indep/1 and indep/2 properties, which are easier to read.

Usage:mshare(X)

The sharing pattern for the variables in the clause is X.

  • The following properties should hold globally:
    (native/2)This predicate is understood natively by CiaoPP as sharing(X).
    (no_rtcheck/1)mshare(X) is not checked during run-time checking.

PROPERTYmshare/2

Usage:mshare(Xs,Xss)

The sharing pattern for the variables Xs is Xss.

  • The following properties should hold globally:
    (native/2)This predicate is understood natively by CiaoPP as sharing(Xs,Xss).
    (no_rtcheck/1)mshare(Xs,Xss) is not checked during run-time checking.

PROPERTYindep/2

Usage:indep(X,Y)

X and Y do not have variables in common.

  • The following properties should hold globally:
    (native/2)This predicate is understood natively by CiaoPP as indep([[X,Y]]).

PROPERTYindep/1

Usage:indep(X)

The variables in the the pairs in X are pairwise independent.

  • The following properties should hold globally:
    (native/2)This predicate is understood natively by CiaoPP as indep(X).

PROPERTYcovered/2
covered(X,Y)

All variables occuring in X occur also in Y. Used by the non-strict independence-based annotators.

Usage:covered(X,Y)

X is covered by Y.

  • The following properties should hold globally:
    (native/1)This predicate is understood natively by CiaoPP.

PROPERTYlinear/1
linear(X)

X is bound to a term which is linear, i.e., if it contains any variables, such variables appear only once in the term. For example, [1,2,3] and f(A,B) are linear terms, while f(A,A) is not.

Usage:linear(X)

X is instantiated to a linear term.

  • The following properties should hold globally:
    (native/1)This predicate is understood natively by CiaoPP.

PROPERTYivar/1
ivar(X)

X is a free variable independent of the rest of the variables appearing in the head of the predicate.

For a predicate p(X0, ..., Xn), ivar(X0) conceptually expands to (var(X0), indep([[X0,X1], ..., [X0,Xn]])).

Usage:ivar(X)

X is a free independent variable.

    PROPERTYnonground/1

    Usage:nonground(X)

    X is not ground.

    • The following properties should hold globally:
      (native/2)This predicate is understood natively by CiaoPP as not_ground(X).

    PROPERTYclique/1
    clique(X)

    X is a set of variables of interest, much the same as a sharing group but X represents all the sharing groups in the powerset of those variables. Similar to a sharing group, a clique is often translated to ground/1, indep/1, and indep/2 properties.

    Usage:clique(X)

    The clique sharing pattern is X.

    • The following properties should hold globally:
      (native/2)This predicate is understood natively by CiaoPP as clique(X).
      (no_rtcheck/1)clique(X) is not checked during run-time checking.

    PROPERTYclique_1/1
    clique_1(X)

    X is a set of variables of interest, much the same as a sharing group but X represents all the sharing groups in the powerset of those variables but disregarding the singletons. Similar to a sharing group, a clique_1 is often translated to ground/1, indep/1, and indep/2 properties.

    Usage:clique_1(X)

    The 1-clique sharing pattern is X.

    • The following properties should hold globally:
      (native/2)This predicate is understood natively by CiaoPP as clique_1(X).
      (no_rtcheck/1)clique_1(X) is not checked during run-time checking.

    Documentation on imports

    This module has the following direct dependencies: