Probably due to recent popularity (and relative accessibility) of certain algorithms, like neural networks, we often think of "machine learning" as being about heavy statistical/numerical algorithms. The Machine Learning Wikipedia page mentions that machine learning is often conflated with data mining. As that page demonstrates, there are other facets to it. In particular, there's the "programming-by-example" community with one of the tools being inductive logic programming (ILP) or inductive programming in general.
You should browse the Machine Learning Wikipedia page for other algorithms, and I'm not suggesting that you couldn't apply a more numerical algorithm like neural networks to this problem, but at least some forms of ILP seem like they would be a good fit. Essentially the goal there is to learn a logic program that correctly classifies examples given positive and negative examples. A logic program is just a collection of predicates.