native (library)

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

Usage and interface

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(Vars,P)

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 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: