Module PropertyUsage

This module contains some operations to handle properties in a Curry program.

Author: Michael Hanus

Version: April 2019

Summary of exported operations:

isProperty :: CFuncDecl -> Bool   
Check whether a function definition is a property, i.e., if the result type is Prop or PropIO.
isPropType :: CTypeExpr -> Bool   
Is the type expression the type Test.EasyCheck.Prop?
isPropIOType :: CTypeExpr -> Bool   
Is the type expression the type Test.EasyCheck.PropIO?
isEquivProperty :: CFuncDecl -> Maybe (CExpr,CExpr)   
Check whether a function definition is an equivalence property, i.e., has the form test = f1 <=> f2.
propModule :: String   
Name of the Test.Prop module (the clone of the EasyCheck module).
propTypesModule :: String   
Name of the Test.Prop.Types module (containing property type definitions).
easyCheckModule :: String   
Name of the EasyCheck module.
easyCheckExecModule :: String   
Name of the EasyCheckExec module.

Exported operations:

isProperty :: CFuncDecl -> Bool   

Check whether a function definition is a property, i.e., if the result type is Prop or PropIO.

isPropType :: CTypeExpr -> Bool   

Is the type expression the type Test.EasyCheck.Prop?

isPropIOType :: CTypeExpr -> Bool   

Is the type expression the type Test.EasyCheck.PropIO?

isEquivProperty :: CFuncDecl -> Maybe (CExpr,CExpr)   

Check whether a function definition is an equivalence property, i.e., has the form test = f1 <=> f2. If yes, returns both operations, otherwise Nothing is returned.

propModule :: String   

Name of the Test.Prop module (the clone of the EasyCheck module).

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

propTypesModule :: String   

Name of the Test.Prop.Types module (containing property type definitions).

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

easyCheckModule :: String   

Name of the EasyCheck module.

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

easyCheckExecModule :: String   

Name of the EasyCheckExec module.

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