amgu-based sharing+freeness (abstract domain)

Author(s): Jorge Navas.

Stability: [prod] Apt for production use (but please report any bugs).


This file implements the same domain-dependent abstract functions than sharefree.pl but the functions call_to_entry and exit_to_prime are defined based on amgu.

The meaning of the variables is defined in sharefree.pl.

Documentation on exports

Usage:call_to_entry(Sv,Sg,Hv,Head,K,Fv,Proj,Entry,ExtraInfo)

  • The following properties should hold at call time:
    (nonvar/1)Sv is currently a term which is not a free variable.
    (nonvar/1)Sg is currently a term which is not a free variable.
    (nonvar/1)Hv is currently a term which is not a free variable.
    (nonvar/1)Head is currently a term which is not a free variable.
    (nonvar/1)K is currently a term which is not a free variable.
    (nonvar/1)Fv is currently a term which is not a free variable.
    (nonvar/1)Proj is currently a term which is not a free variable.
  • The following properties should hold upon exit:
    (nonvar/1)Entry is currently a term which is not a free variable.

Usage:exit_to_prime(Sg,Hv,Head,Sv,Exit,ExtraInfo,Prime)

  • The following properties should hold at call time:
    (nonvar/1)Sg is currently a term which is not a free variable.
    (nonvar/1)Hv is currently a term which is not a free variable.
    (nonvar/1)Head is currently a term which is not a free variable.
    (nonvar/1)Sv is currently a term which is not a free variable.
    (nonvar/1)Exit is currently a term which is not a free variable.
    (nonvar/1)ExtraInfo is currently a term which is not a free variable.
  • The following properties should hold upon exit:
    (nonvar/1)Prime is currently a term which is not a free variable.

PREDICATEamgu/4

Usage:amgu(Sg,Head,ASub,AMGU)

AMGU is the abstract unification between Sg and Head.

  • The following properties should hold at call time:
    (nonvar/1)Sg is currently a term which is not a free variable.
    (nonvar/1)Head is currently a term which is not a free variable.
    (nonvar/1)ASub is currently a term which is not a free variable.
  • The following properties should hold upon exit:
    (nonvar/1)AMGU is currently a term which is not a free variable.

Usage:

  • The following properties should hold at call time:
    (nonvar/1)Arg1 is currently a term which is not a free variable.
    (nonvar/1)Arg2 is currently a term which is not a free variable.
  • The following properties should hold upon exit:
    (nonvar/1)Arg3 is currently a term which is not a free variable.

No further documentation available for this predicate.

Usage:

Specialized version of call_to_entry + exit_to_prime + extend for facts

    No further documentation available for this predicate.

    No further documentation available for this predicate.

    Usage:special_builtin(SgKey,Sg,Subgoal,Type,Condvars)

    • The following properties should hold at call time:
      (nonvar/1)SgKey is currently a term which is not a free variable.
      (nonvar/1)Sg is currently a term which is not a free variable.
      (nonvar/1)Subgoal is currently a term which is not a free variable.
      (var/1)Condvars is a free variable.
    • The following properties should hold upon exit:
      (nonvar/1)Type is currently a term which is not a free variable.

    Usage:success_builtin(Type,Sv_u,Condv,HvFv_u,Call,Succ)

    • The following properties should hold at call time:
      (nonvar/1)Type is currently a term which is not a free variable.
      (nonvar/1)Sv_u is currently a term which is not a free variable.
      (nonvar/1)HvFv_u is currently a term which is not a free variable.
      (nonvar/1)Call is currently a term which is not a free variable.
    • The following properties should hold upon exit:
      (nonvar/1)Succ is currently a term which is not a free variable.

    Usage:call_to_success_builtin(SgKey,Sg,Sv,Call,Proj,Succ)

    Handles those builtins for which computing Prime is easier than Succ

    • The following properties should hold at call time:
      (nonvar/1)SgKey is currently a term which is not a free variable.
      (nonvar/1)Sg is currently a term which is not a free variable.
      (nonvar/1)Sv is currently a term which is not a free variable.
      (nonvar/1)Call is currently a term which is not a free variable.
      (nonvar/1)Proj is currently a term which is not a free variable.
    • The following properties should hold upon exit:
      (nonvar/1)Succ is currently a term which is not a free variable.

    Documentation on multifiles

    PREDICATEaidomain/1
    No further documentation available for this predicate. The predicate is multifile.

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

    PREDICATEaidom.amgu/5
    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.

    PREDICATEaidom.needs/2
    No further documentation available for this predicate. The predicate is multifile.

    PREDICATEaidom.widen/4
    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.

    PREDICATEaidom.glb/4
    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.

    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.

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

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