-- Copyright (C) 2021 Rudy Matela -- Distributed under the 3-Clause BSD licence (see the file LICENSE). import Test main :: IO () main = mainTest tests 5040 tests :: Int -> [Bool] tests n = [ True , recursexpr 6 (ff xx) (ff xx) == (ff xx) , recursexpr 6 (ff xx) (one -+- ff xx) == (one -+- (one -+- (one -+- (one -+- ff xx)))) , recursexpr 6 (ff xx) (if' pp one (xx -*- ff xx)) == (if' pp one (xx -*- (if' pp one (xx -*- ff xx)))) , recursexpr 6 (ff xx) (if' pp one (xx -*- ff (gg xx))) == (if' pp one (xx -*- (if' pp one (gg xx -*- ff (gg (gg xx)))))) , mayNotEvaluateArgument (plus :$ xx) == False , mayNotEvaluateArgument (andE :$ pp) == True , mayNotEvaluateArgument (orE :$ qq) == True , mayNotEvaluateArgument (if' pp xx yy) == False , mayNotEvaluateArgument (andE :$ pp :$ qq) == False , mayNotEvaluateArgument (orE :$ pp :$ qq) == False , apparentlyTerminates ffE (ff xx) == False , apparentlyTerminates ffE (if' pp zero (ff xx)) == True , apparentlyTerminates ffE (if' pp (ff xx) zero) == False , apparentlyTerminates ffE (if' (odd' (ff xx)) zero zero) == False ]