Agda-2.3.0: A dependently typed functional programming language and proof assistant




permute :: Permutation -> [a] -> [a]Source

permute [2,3,1] [x1,x2,x3] = [x2,x3,x1] More precisely, permute indices list = sublist, generates sublist from list by picking the elements of list as indicated by indices. permute [2,4,1] [x1,x2,x3,x4] = [x2,x4,x1]

composeP :: Permutation -> Permutation -> PermutationSource

permute (compose p1 p2) == permute p1 . permute p2

compactP :: Permutation -> PermutationSource

Turn a possible non-surjective permutation into a surjective permutation.

expandP :: Integer -> Integer -> Permutation -> PermutationSource

expandP i n  in the domain of  replace the ith element by n elements.

topoSort :: (a -> a -> Bool) -> [a] -> Maybe PermutationSource

Stable topologic sort. The first argument decides whether its first argument is an immediate parent to its second argument.