Database for incremental analysis

Predicates for mantaining the structures needed for incremental analysis

Documentation on exports

PREDICATEinit_clkeys/0
This predicate annotates which is the last clause identifier that was assinged by module program_key. This is needed to give new ids to the clauses that are added to the analysis.

Remove databases for incremental analysis.

Usage:change_id_clause(Cl,NCl)

Changes the Ids through Cl so that there is no conflict with other clauses already present in the analysis.

    Usage:insert_after_clkey(Id,Cl)

    • The following properties should hold at call time:
      (atm/1)Id is an atom.

    Stores locally the current source database of ciaopp.

    Restores from a local copy the source database of ciaopp.

    Usage:remove_clauses_pred(Pred,Cls)

    Removes from the database all clauses for predicate Pred of the form F/A and returns them in Cls.

      Usage:add_all_clauses(Cls)

      Asserts the list of clauses Cls to the temporal database.

      • The following properties should hold at call time:
        (list/1)Cls is a list.

      Usage:add_new_preds(Preds)

      This predicates adds predicates which were not defined before.

      This predicate is needed for the initialization of the counters for Ids.

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

      Usage:get_current_clauses(Cls)

      Returns all clauses currently present in the source database.

      • The following properties should hold at call time:
        (var/1)Cls is a free variable.
      • The following properties should hold upon exit:
        (list/1)Cls is a list.

      Usage:get_current_assertions(Assrts)

      Returns all assertions currently present in the source database.

      • The following properties should hold at call time:
        (var/1)Assrts is a free variable.
      • The following properties should hold upon exit:
        (list/1)Assrts is a list.

      No further documentation available for this predicate.

      No further documentation available for this predicate.

      Usage:add_changed_registry(SgKey,ImMod,Module,Reg)

      This predicate annotates changes that occurs on the registry of predicate SgKey exported in Module.

      • The following properties should hold at call time:
        (atm/1)SgKey is an atom.
        (atm/1)Module is an atom.

      Usage:get_changed_registry(Key,CMod,Mod,Reg)

      The data of answer of predicate Key exported by module Mod has changed to Reg.

      • Call and exit should be compatible with:
        (atm/1)Key is an atom.
        (atm/1)CMod is an atom.
        (atm/1)Mod is an atom.
        (term/1)Reg is any term.

      Cleans structures needed for incremental modular analysis.

      Usage:update_inc_clkey(NClKey)

      Updates the value of the last id assigned by the program_keys module.

      • The following properties should hold at call time:
        (atm/1)NClKey is an atom.

      Flag that determines if the set of modules to be loaded with incremental_module/2 is disjoint with the set of the previously loaded The predicate is of type data.

      Usage:set_loaded_mods(M)

      Sets the context (as a list of loaded modules) of the incremental analysis.

      • The following properties should hold at call time:
        (list/1)M is a list.

      PREDICATEloaded_mods/1

      Usage:loaded_mods(Ms)

      Returns the list of currently loaded modules.

      • The following properties should hold upon exit:
        (list/1)Ms is a list.

      Usage:set_analyzed_mods(M)

      Sets the context (as a list of loaded modules) of the incremental analysis.

      • The following properties should hold at call time:
        (list/1)M is a list.

      Usage:analyzed_mods(Ms)

      Returns the list of currently loaded modules.

      • The following properties should hold upon exit:
        (list/1)Ms is a list.

      No further documentation available for this predicate. The predicate is of type data.

      No further documentation available for this predicate.

      No further documentation available for this predicate.

      Documentation on imports

      This module has the following direct dependencies: