☰

*ON THIS PAGE*# etermsvar: eterms with variables (abstract domain)

**Author(s):** Claudio Vaucheret, Francisco Bueno, Alejandro Serrano (etermsvar), Ciao Development Team.## Usage and interface

## Documentation on exports

## Documentation on multifiles

## Documentation on imports

This module has the following direct dependencies:

- The CiaoPP Program Processor »

- PART I - Using CiaoPP »

- Available abstract domains »

**etermsvar: eterms with variables (abstract domain)**

This module implements an (experimental) variant of the `eterms` domain with `vr` elements in the lattice.

**Library usage:**`:- use_module(domain(etermsvar)).`**Exports:***Predicates:*`etermsvar_init_abstract_domain/1`,`etermsvar_compute_lub/2`,`etermsvar_compute_lub_el/3`,`etermsvar_widencall/3`,`etermsvar_needs/1`,`etermsvar_widen/3`,`etermsvar_call_to_entry/9`,`etermsvar_exit_to_prime/7`,`etermsvar_project/5`,`etermsvar_abs_sort/2`,`etermsvar_extend/5`,`etermsvar_less_or_equal/2`,`etermsvar_glb/3`,`etermsvar_concrete/3`,`etermsvar_unknown_entry/3`,`etermsvar_empty_entry/3`,`etermsvar_unknown_call/4`,`etermsvar_call_to_success_fact/9`,`etermsvar_special_builtin/5`,`etermsvar_success_builtin/6`,`etermsvar_arg_call_to_success/9`,`etermsvar_call_to_success_builtin/6`,`etermsvar_obtain_info/4`,`etermsvar_input_user_interface/5`,`etermsvar_input_interface/4`,`etermsvar_asub_to_native/5`,`etermsvar_output_interface/2`,`etermsvar_collect_auxinfo_asub/3`,`etermsvar_rename_auxinfo_asub/3`,`etermsvar_identical_abstract/2`,`etermsvar_multi_part_conc/3`,`etermsvar_part_conc/4`.*Multifiles:*`aidomain/1`,`aidom.init_abstract_domain/2`,`aidom.amgu/5`,`aidom.augment_asub/4`,`aidom.augment_two_asub/4`,`aidom.call_to_entry/10`,`aidom.exit_to_prime/8`,`aidom.project/6`,`aidom.widencall/4`,`aidom.needs/2`,`aidom.widen/4`,`aidom.compute_lub/3`,`aidom.compute_clauses_lub/4`,`aidom.compute_clauses_glb/4`,`aidom.fixpoint_covered/3`,`aidom.fixpoint_covered_gfp/3`,`aidom.identical_abstract/3`,`aidom.abs_sort/3`,`aidom.extend/6`,`aidom.less_or_equal/3`,`aidom.glb/4`,`aidom.eliminate_equivalent/3`,`aidom.abs_subset/3`,`aidom.call_to_success_fact/10`,`aidom.special_builtin/6`,`aidom.combined_special_builtin0/3`,`aidom.body_succ_builtin/9`,`aidom.split_combined_domain/4`,`aidom.success_builtin/7`,`aidom.call_to_success_builtin/7`,`aidom.obtain_info/5`,`aidom.input_interface/5`,`aidom.input_user_interface/6`,`aidom.asub_to_native/6`,`aidom.concrete/4`,`aidom.unknown_call/5`,`aidom.unknown_entry/4`,`aidom.empty_entry/4`,`aidom.part_conc/5`,`aidom.multi_part_conc/4`,`aidom.collect_auxinfo_asub/4`,`aidom.rename_auxinfo_asub/4`,`aidom.dom_statistics/2`,`aidom.contains_parameters/2`.

PREDICATEetermsvar_init_abstract_domain/1

No further documentation available for this predicate.

PREDICATEetermsvar_compute_lub/2

PREDICATEetermsvar_compute_lub_el/3

No further documentation available for this predicate.

PREDICATEetermsvar_widencall/3

No further documentation available for this predicate.

PREDICATEetermsvar_needs/1

No further documentation available for this predicate.

PREDICATEetermsvar_widen/3

Usage:`etermsvar_widen(Prime0,Prime1,NewPrime)`

*The following properties should hold at call time:*

(`nonvar/1`)Prime0 is currently a term which is not a free variable.

(`nonvar/1`)Prime1 is currently a term which is not a free variable.

(`var/1`)NewPrime is a free variable.

(`absu/1`)Prime0 is an abstract substitution

(`absu/1`)Prime1 is an abstract substitution

(`absu/1`)NewPrime is an abstract substitution

PREDICATEetermsvar_call_to_entry/9

Usage:`etermsvar_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.

(`var/1`)Entry is a free variable.

(`var/1`)ExtraInfo is a free variable.

(`term/1`)Sv is any term.

(`cgoal/1`)Sg is a term which represents a goal, i.e., an atom or a structure.

(`list/1`)Hv is a list.

(`cgoal/1`)Head is a term which represents a goal, i.e., an atom or a structure.

(`term/1`)K is any term.

(`list/1`)Fv is a list.

(`absu/1`)Proj is an abstract substitution

(`absu/1`)Entry is an abstract substitution

(`extrainfo/1`)`extrainfo(ExtraInfo)`

PREDICATEetermsvar_exit_to_prime/7

Usage:`etermsvar_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.

(`var/1`)ExtraInfo is a free variable.

(`var/1`)Prime is a free variable.

(`list/1`)Sg is a list.

(`list/1`)Hv is a list.

(`cgoal/1`)Head is a term which represents a goal, i.e., an atom or a structure.

(`cgoal/1`)Sv is a term which represents a goal, i.e., an atom or a structure.

(`absu/1`)Exit is an abstract substitution

(`extrainfo/1`)`extrainfo(ExtraInfo)`

(`absu/1`)Prime is an abstract substitution

PREDICATEetermsvar_project/5

Usage:`etermsvar_project(Sg,Vars,HvFv_u,Asub,Proj)`

*The following properties should hold at call time:*

(`nonvar/1`)Sg is currently a term which is not a free variable.

(`nonvar/1`)Vars 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`)Asub is currently a term which is not a free variable.

(`var/1`)Proj is a free variable.

(`term/1`)Sg is any term.

(`list/1`)Vars is a list.

(`list/1`)HvFv_u is a list.

(`absu/1`)Asub is an abstract substitution

(`absu/1`)Proj is an abstract substitution

PREDICATEetermsvar_abs_sort/2

PREDICATEetermsvar_extend/5

Usage:`etermsvar_extend(Sg,Prime,Sv,Call,Succ)`

*The following properties should hold at call time:*

(`nonvar/1`)Sg is currently a term which is not a free variable.

(`nonvar/1`)Prime 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.

(`var/1`)Succ is a free variable.

(`term/1`)Sg is any term.

(`absu/1`)Prime is an abstract substitution

(`list/1`)Sv is a list.

(`absu/1`)Call is an abstract substitution

(`absu/1`)Succ is an abstract substitution

PREDICATEetermsvar_less_or_equal/2

Usage:`etermsvar_less_or_equal(ASub0,ASub1)`

PREDICATEetermsvar_glb/3

Usage:`etermsvar_glb(ASub0,ASub1,Glb)`

*The following properties should hold at call time:*

(`nonvar/1`)ASub0 is currently a term which is not a free variable.

(`nonvar/1`)ASub1 is currently a term which is not a free variable.

(`var/1`)Glb is a free variable.

(`absu/1`)ASub0 is an abstract substitution

(`absu/1`)ASub1 is an abstract substitution

(`absu/1`)Glb is an abstract substitution

PREDICATEetermsvar_concrete/3

No further documentation available for this predicate.

PREDICATEetermsvar_unknown_entry/3

Usage:`etermsvar_unknown_entry(Sg,Qv,Call)`

*The following properties should hold at call time:*

(`nonvar/1`)Sg is currently a term which is not a free variable.

(`nonvar/1`)Qv is currently a term which is not a free variable.

(`var/1`)Call is a free variable.

(`cgoal/1`)Sg is a term which represents a goal, i.e., an atom or a structure.

(`list/1`)Qv is a list.

(`absu/1`)Call is an abstract substitution

PREDICATEetermsvar_empty_entry/3

Usage:`etermsvar_empty_entry(Sg,Vars,Entry)`

*The following properties should hold at call time:*

(`nonvar/1`)Sg is currently a term which is not a free variable.

(`nonvar/1`)Vars is currently a term which is not a free variable.

(`var/1`)Entry is a free variable.

(`cgoal/1`)Sg is a term which represents a goal, i.e., an atom or a structure.

(`list/1`)Vars is a list.

(`absu/1`)Entry is an abstract substitution

PREDICATEetermsvar_unknown_call/4

Usage:`etermsvar_unknown_call(Sg,Vars,Call,Succ)`

*The following properties should hold at call time:*

(`nonvar/1`)Sg is currently a term which is not a free variable.

(`nonvar/1`)Vars is currently a term which is not a free variable.

(`nonvar/1`)Call is currently a term which is not a free variable.

(`var/1`)Succ is a free variable.

(`cgoal/1`)Sg is a term which represents a goal, i.e., an atom or a structure.

(`list/1`)Vars is a list.

(`absu/1`)Call is an abstract substitution

(`absu/1`)Succ is an abstract substitution

PREDICATEetermsvar_call_to_success_fact/9

Usage:`etermsvar_call_to_success_fact(Sg,Hv,Head,K,Sv,Call,Proj,Prime,Succ)`

*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`)K 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.

(`var/1`)Prime is a free variable.

(`var/1`)Succ is a free variable.

(`cgoal/1`)Sg is a term which represents a goal, i.e., an atom or a structure.

(`list/1`)Hv is a list.

(`cgoal/1`)Head is a term which represents a goal, i.e., an atom or a structure.

(`term/1`)K is any term.

(`list/1`)Sv is a list.

(`absu/1`)Call is an abstract substitution

(`absu/1`)Proj is an abstract substitution

(`absu/1`)Prime is an abstract substitution

(`absu/1`)Succ is an abstract substitution

PREDICATEetermsvar_special_builtin/5

Usage:`etermsvar_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`)Type is a free variable.

(`var/1`)Condvars is a free variable.

PREDICATEetermsvar_success_builtin/6

Usage:`etermsvar_success_builtin(Type,Sv_uns,Condvars,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_uns is currently a term which is not a free variable.

(`nonvar/1`)Condvars 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.

(`var/1`)Succ is a free variable.

PREDICATEetermsvar_arg_call_to_success/9

No further documentation available for this predicate.

PREDICATEetermsvar_call_to_success_builtin/6

Usage:`etermsvar_call_to_success_builtin(SgKey,Sg,Sv,Call,Proj,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.

(`var/1`)Succ is a free variable.

PREDICATEetermsvar_obtain_info/4

No further documentation available for this predicate.

PREDICATEetermsvar_input_user_interface/5

Usage:`etermsvar_input_user_interface(InputUser,Qv,ASub,Sg,MaybeCallASub)`

*The following properties should hold at call time:*

(`nonvar/1`)InputUser is currently a term which is not a free variable.

(`nonvar/1`)Qv is currently a term which is not a free variable.

(`var/1`)ASub is a free variable.

(`nonvar/1`)Sg is currently a term which is not a free variable.

(`nonvar/1`)MaybeCallASub is currently a term which is not a free variable.

PREDICATEetermsvar_input_interface/4

No further documentation available for this predicate.

PREDICATEetermsvar_asub_to_native/5

No further documentation available for this predicate.

PREDICATEetermsvar_output_interface/2

PREDICATEetermsvar_collect_auxinfo_asub/3

No further documentation available for this predicate.

PREDICATEetermsvar_rename_auxinfo_asub/3

No further documentation available for this predicate.

PREDICATEetermsvar_identical_abstract/2

No further documentation available for this predicate.

PREDICATEetermsvar_multi_part_conc/3

No further documentation available for this predicate.

PREDICATEetermsvar_part_conc/4

No further documentation available for this predicate.

PREDICATEaidomain/1

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

PREDICATEaidom.init_abstract_domain/2

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*.

PREDICATEaidom.augment_asub/4

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

PREDICATEaidom.augment_two_asub/4

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

PREDICATEaidom.call_to_entry/10

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

PREDICATEaidom.exit_to_prime/8

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

PREDICATEaidom.project/6

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

PREDICATEaidom.widencall/4

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*.

PREDICATEaidom.compute_lub/3

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

PREDICATEaidom.compute_clauses_lub/4

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

PREDICATEaidom.compute_clauses_glb/4

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

PREDICATEaidom.fixpoint_covered/3

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

PREDICATEaidom.fixpoint_covered_gfp/3

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

PREDICATEaidom.identical_abstract/3

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

PREDICATEaidom.abs_sort/3

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

PREDICATEaidom.extend/6

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

PREDICATEaidom.less_or_equal/3

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*.

PREDICATEaidom.eliminate_equivalent/3

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

PREDICATEaidom.abs_subset/3

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

PREDICATEaidom.call_to_success_fact/10

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

PREDICATEaidom.special_builtin/6

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

PREDICATEaidom.combined_special_builtin0/3

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

PREDICATEaidom.body_succ_builtin/9

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

PREDICATEaidom.split_combined_domain/4

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

PREDICATEaidom.success_builtin/7

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

PREDICATEaidom.call_to_success_builtin/7

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

PREDICATEaidom.obtain_info/5

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

PREDICATEaidom.input_interface/5

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

PREDICATEaidom.input_user_interface/6

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

PREDICATEaidom.asub_to_native/6

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

PREDICATEaidom.concrete/4

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

PREDICATEaidom.unknown_call/5

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

PREDICATEaidom.unknown_entry/4

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

PREDICATEaidom.empty_entry/4

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

PREDICATEaidom.part_conc/5

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

PREDICATEaidom.multi_part_conc/4

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

PREDICATEaidom.collect_auxinfo_asub/4

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

PREDICATEaidom.rename_auxinfo_asub/4

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

PREDICATEaidom.dom_statistics/2

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

PREDICATEaidom.contains_parameters/2

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

*Application modules:*`preprocess_flags`,`domains`,`apply_assertions_old`,`eterms`,`termsd`.*System library modules:*`datafacts_rt`,`sets`,`sort`,`typeslib`,`messages`,`aggregates`,`terms_vars`,`terms_check`,`lists`.*Internal (engine) modules:*`term_basic`,`arithmetic`,`atomic_basic`,`basiccontrol`,`exceptions`,`term_compare`,`term_typing`,`debugger_support`,`basic_props`,`hiord_rt`.*Packages:*`prelude`,`initial`,`condcomp`,`assertions`,`assertions/assertions_basic`,`regtypes`,`basicmodes`,`datafacts`,`aidomain`.

Generated with LPdoc using Ciao