  Constraint programming (CP) is a powerful tool for modeling mathematical
concepts and objects and finding both solutions or counter examples. One of the
major strengths of CP is that problems can easily be combined or expanded. In
this paper, we illustrate that this versatility makes CP an ideal tool for
exploring problems in permutation patterns.
  We declaratively define permutation properties, permutation pattern avoidance
and containment constraints using CP and show how this allows us to solve a
wide range of problems. We show how this approach enables the arbitrary
composition of these conditions, and also allows the easy addition of extra
conditions. We demonstrate the effectiveness of our techniques by modelling the
containment and avoidance of six permutation patterns, eight permutation
properties and measuring five statistics on the resulting permutations. In
addition to calculating properties and statistics for the generated
permutations, we show that arbitrary additional constraints can also be easily
and efficiently added.
  This approach enables mathematicians to investigate permutation pattern
problems in a quick and efficient manner. We demonstrate the utility of
constraint programming for permutation patterns by showing how we can easily
and efficiently extend the known permutation counts for a conjecture involving
the class of 1324 avoiding permutations. For this problem, we expand the
enumeration of 1324-avoiding permutations with a fixed number of inversions to
permutations of length 16 and show for the first time that in the enumeration
there is a pattern occurring which follows a unique sequence on the Online
Encyclopedia of Integer Sequences.
