☰

*ON THIS PAGE*# Properties related to sharing/aliasing, groundness

These properties are part of the `native_props` library.

## Usage and interface

## Documentation on exports

`mshare(X)`
`covered(X,Y)`
`linear(X)`
`ivar(X)`
`clique(X)`
`clique_1(X)`
## Documentation on imports

This module has the following direct dependencies:

- The lpdoc Documentation Generator »

- The Ciao assertion language »

- Properties which are native to analyzers »

**Properties related to sharing/aliasing, groundness**

**Library usage:**`:- use_module(library(assertions/native_props))`or also as a package

`:- use_package(nativeprops)`.Note the slightly different names of the library and the package.

**Exports:***Properties:*`mshare/1`,`mshare/2`,`indep/2`,`indep/1`,`covered/2`,`linear/1`,`ivar/1`,`nonground/1`,`clique/1`,`clique_1/1`.

PROPERTYmshare/1

X contains all *sharing sets* [JL88,MH89] 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

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

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

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

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

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.

*Internal (engine) modules:*`term_basic`,`arithmetic`,`atomic_basic`,`basiccontrol`,`exceptions`,`term_compare`,`term_typing`,`debugger_support`,`basic_props`.*Packages:*`prelude`,`initial`,`condcomp`,`assertions`,`assertions/assertions_basic`,`regtypes`.

Generated with LPdoc using Ciao