subset :: [Int] -> [Int] -> Bool -- testing 44 combinations of argument values -- pruning with 3/3 rules {- rules: xs `isSubsequenceOf` xs == True sort (sort xs) == sort xs sort xs `isSubsequenceOf` ys == xs `isSubsequenceOf` sort ys -} -- reasoning produced 1 incorrect properties, please re-run with more tests for faster results {- invalid: xs `isSubsequenceOf` sort xs == True -} -- 0 candidates of size 1 -- 0 candidates of size 2 -- 2 candidates of size 3 -- 4 candidates of size 4 -- 0 candidates of size 5 -- 0 candidates of size 6 -- 3 candidates of size 7 -- 2 candidates of size 8 -- 0 candidates of size 9 -- 4 candidates of size 10 -- 8 candidates of size 11 -- 4 candidates of size 12 -- 0 candidates of size 13 -- 0 candidates of size 14 -- 0 candidates of size 15 -- 0 candidates of size 16 -- 0 candidates of size 17 -- 0 candidates of size 18 -- tested 27 candidates cannot conjure subset :: [Int] -> [Int] -> Bool -- testing 44 combinations of argument values -- pruning with 3/3 rules {- rules: xs `isSubsequenceOf` xs == True sort (sort xs) == sort xs sort xs `isSubsequenceOf` xs == xs `isSubsequenceOf` sort xs -} -- 0 candidates of size 1 -- 0 candidates of size 2 -- 2 candidates of size 3 -- 6 candidates of size 4 -- 2 candidates of size 5 -- tested 9 candidates subset xs ys = sort xs `isSubsequenceOf` sort ys replicates :: [Char] -> Int -> [Char] -- testing 60 combinations of argument values -- pruning with 2/2 rules {- rules: concat (transpose xss) == concat xss transpose (transpose (transpose xss)) == transpose xss -} -- 1 candidates of size 1 -- 0 candidates of size 2 -- 0 candidates of size 3 -- 1 candidates of size 4 -- 0 candidates of size 5 -- 0 candidates of size 6 -- 1 candidates of size 7 -- 0 candidates of size 8 -- 0 candidates of size 9 -- 1 candidates of size 10 -- 0 candidates of size 11 -- 0 candidates of size 12 -- 1 candidates of size 13 -- 0 candidates of size 14 -- 0 candidates of size 15 -- 1 candidates of size 16 -- 0 candidates of size 17 -- 0 candidates of size 18 -- tested 6 candidates cannot conjure replicates :: [Char] -> Int -> [Char] -- testing 360 combinations of argument values -- pruning with 2/2 rules {- rules: transpose (transpose (transpose xss)) == transpose xss replicate x (concat (transpose xss)) == replicate x (concat xss) -} -- 1 candidates of size 1 -- 0 candidates of size 2 -- 0 candidates of size 3 -- 1 candidates of size 4 -- 1 candidates of size 5 -- tested 3 candidates replicates cs x = concat (transpose (replicate x cs))