Module Analysis.RootReplaced

RootReplaced analysis: This analysis returns for each function f all functions to which this can be replaced at the root. For instance, if there are the definitions:

f x = g x
g x = h x
h x = k x : []

then the root replacements of f are [g,h].

This analysis could be useful to detect simple loops, e.g., if a function is in its root replacement. This is the purpose of the analysis RootCyclic which assigns True to some operation if this operation might cause a cyclic root replacement.

Author: Michael Hanus

Version: January 2017

Summary of exported operations:

showRootRepl :: AOutFormat -> ([(String,String)],[Int]) -> String  Deterministic 
rootReplAnalysis :: Analysis ([(String,String)],[Int])  Deterministic 
Root replacement analysis.
showRootCyclic :: AOutFormat -> Bool -> String  Deterministic 
rootCyclicAnalysis :: Analysis Bool  Non-deterministic 
Root cyclic analysis.

Exported operations:

showRootRepl :: AOutFormat -> ([(String,String)],[Int]) -> String  Deterministic 

rootReplAnalysis :: Analysis ([(String,String)],[Int])  Deterministic 

Root replacement analysis.

showRootCyclic :: AOutFormat -> Bool -> String  Deterministic 

Further infos:
  • solution complete, i.e., able to compute all solutions

rootCyclicAnalysis :: Analysis Bool  Non-deterministic 

Root cyclic analysis.