  Combinatorial Exploration is a new domain-agnostic algorithmic framework to
automatically and rigorously study the structure of combinatorial objects and
derive their counting sequences and generating functions. We describe how it
works and provide an open-source Python implementation. As a prerequisite, we
build up a new theoretical foundation for combinatorial decomposition
strategies and combinatorial specifications.
  We then apply Combinatorial Exploration to the domain of permutation
patterns, to great effect. We rederive hundreds of results in the literature in
a uniform manner and prove many new ones. These results can be found in a new
public database, the Permutation Pattern Avoidance Library (PermPAL) at
https://permpal.com. Finally, we give three additional proofs-of-concept,
showing examples of how Combinatorial Exploration can prove results in the
domains of alternating sign matrices, polyominoes, and set partitions.
