native (library)

This module has the basic procedures for understanding predicates as builtins and properties as native properties.

Documentation on exports

PREDICATEbuiltin/2
checks that a user level (property) predicate is declared native and translates it into the internal representation for that native (builtin or property) predicate.

native_prop_map(Prop,P,Vars)

Prop is a property P(Vars) representing a mapping map(P,Vars)

Defined as
native_prop_term(Prop) :-
    native:native(Prop).
native_prop_term(regtype(Prop)) :-
    cgoal(Prop).

Usage:native_prop_term(Prop)

Prop identifies a native property.

    PREDICATEwam_builtin/2
    No further documentation available for this predicate.

    Documentation on multifiles

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    No further documentation available for this predicate. The predicate is multifile.

    Documentation on internals

    REGTYPEnative/1
    native(Prop)

    Prop is (the internal representation of) a native property: one that CiaoPP knows natively how to manipulate.

    native(covered(V,L)) :-
        var(V),
        list(var,L).
    native(free(L)) :-
        vlist(L).
    native(ground(L)) :-
        vlist(L).
    native(indep(L)) :-
        list(list(var),L).
    native(instance(V,T)) :-
        var(V),
        nonvar(T).
    native(linear(L)) :-
        vlist(L).
    native(not_free(L)) :-
        vlist(L).
    native(not_ground(L)) :-
        vlist(L).
    native(sharing(L)) :-
        list(list(var),L).
    native(sharing(Xs,Xss)) :-
        list(var,Xs),
        list(list(var),Xss).
    native(det).
    native(semidet).
    native(multi).
    native(nondet).
    native(covered).
    native(fails).
    native(is_det).
    native(mut_exclusive).
    native(non_det).
    native(not_covered).
    native(not_fails).
    native(not_mut_exclusive).
    native(sideff(X)) :-
        member(X,[pure,soft,hard]).
    native(steps(C)) :-
        cost_expression(C).
    native(steps_lb(C)) :-
        cost_expression(C).
    native(steps_ub(C)) :-
        cost_expression(C).
    native(steps_o(C)) :-
        cost_expression(C).
    native(cost(C)) :-
        cost_expression(C).
    native(terminates).
    native(size(C)) :-
        cost_expression(C).
    native(size(A,B)) :-
        var(A),
        cost_expression(B).
    native(size_lb(C)) :-
        cost_expression(C).
    native(size_ub(C)) :-
        cost_expression(C).
    native(size_o(C)) :-
        cost_expression(C).
    native(rsize(A,_B)) :-
        var(A).
    native(cardinality(_N,_M)).
    native(costb(_R,_N,_M)).
    native(X) :-
        native(X,X).
    

    REGTYPEvlist/1
    vlist(L) :-
        var(L).
    vlist(L) :-
        list(var,L).
    

    Documentation on imports

    This module has the following direct dependencies: