We show that some recent results in slicing of a distributed computation
can be applied to developing algorithms to solve problems in
combinatorics. A combinatorial 
problem usually requires enumerating, counting or ascertaining existence of structures that
satisfy a given property $B$. We cast the combinatorial problem
as a distributed computation such that there is a bijection between
combinatorial structures satisfying $B$ and the global states that 
satisfy a property equivalent to $B$. We then apply results in slicing 
a computation with respect to a predicate to obtain a small representation
of only those global states that satisfy $B$. The slicing results
are based on a generalization of Birkhoff's Theorem of representation
of finite distributive lattices. This gives us an efficient
(polynomial time) algorithm to enumerate, count or detect structures
that satisfy $B$ when the total set of structures is large but the set of
structures satisfying $B$ is small.
We illustrate our techniques by analyzing problems in integer
partitions, set families, and set of permutations.