Module Analysis.Deterministic

Determinism analysis: checks whether functions are deterministic or nondeterministic, i.e., whether its evaluation on ground argument terms might cause different computation paths.

Author: Michael Hanus

Version: August 2016

Summary of exported operations:

overlapAnalysis :: Analysis Bool   
showOverlap :: AOutFormat -> Bool -> String   
functionalAnalysis :: Analysis Bool   
showFunctional :: AOutFormat -> Bool -> String   
showDet :: AOutFormat -> Deterministic -> String   
nondetAnalysis :: Analysis Deterministic   
showNonDetDeps :: AOutFormat -> [((String,String),[(String,String)])] -> String   
nondetDepAnalysis :: Analysis [((String,String),[(String,String)])]   
Non-deterministic dependency analysis.
nondetDepAllAnalysis :: Analysis [((String,String),[(String,String)])]   
Non-deterministic dependency analysis.

Exported datatypes:


Deterministic

Data type to represent determinism information.

Constructors:

  • NDet :: Deterministic
  • Det :: Deterministic

Exported operations:

overlapAnalysis :: Analysis Bool   

showOverlap :: AOutFormat -> Bool -> String   

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

showFunctional :: AOutFormat -> Bool -> String   

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

showDet :: AOutFormat -> Deterministic -> String   

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

showNonDetDeps :: AOutFormat -> [((String,String),[(String,String)])] -> String   

nondetDepAnalysis :: Analysis [((String,String),[(String,String)])]   

Non-deterministic dependency analysis. The analysis computes for each operation the set of operations with a non-deterministic definition which might be called by this operation. Non-deterministic operations that are called by other non-deterministic operations are ignored so that only the first (w.r.t. the call sequence) non-deterministic operations are returned.

nondetDepAllAnalysis :: Analysis [((String,String),[(String,String)])]   

Non-deterministic dependency analysis. The analysis computes for each operation the set of all operations with a non-deterministic definition which might be called by this operation.