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 -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 4 candidates of size 4 -- looking through 0 candidates of size 5 -- looking through 0 candidates of size 6 -- looking through 12 candidates of size 7 -- looking through 22 candidates of size 8 -- looking through 8 candidates of size 9 -- looking through 0 candidates of size 10 -- looking through 0 candidates of size 11 -- looking through 0 candidates of size 12 -- tested 48 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 -} -- looking through 0 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 2 candidates of size 3 -- looking through 6 candidates of size 4 -- looking through 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 -} -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 1 candidates of size 4 -- looking through 0 candidates of size 5 -- looking through 0 candidates of size 6 -- looking through 1 candidates of size 7 -- looking through 0 candidates of size 8 -- looking through 0 candidates of size 9 -- looking through 1 candidates of size 10 -- looking through 0 candidates of size 11 -- looking through 0 candidates of size 12 -- tested 4 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) -} -- looking through 1 candidates of size 1 -- looking through 0 candidates of size 2 -- looking through 0 candidates of size 3 -- looking through 1 candidates of size 4 -- looking through 1 candidates of size 5 -- tested 3 candidates replicates cs x = concat (transpose (replicate x cs))