Learning Differentiable Logic Programs for
Abstract Visual Reasoning