Learning differentiable logic programs for abstract visual reasoning | Synapse