  Deep neural learning uses an increasing amount of computation and data to
solve very specific problems. By stark contrast, human minds solve a wide range
of problems using a fixed amount of computation and limited experience. One
ability that seems crucial to this kind of general intelligence is
meta-reasoning, i.e., our ability to reason about reasoning. To make deep
learning do more from less, we propose the first neural meta-symbolic system
(NEMESYS) for reasoning and learning: meta programming using differentiable
forward-chaining reasoning in first-order logic. Differentiable meta
programming naturally allows NEMESYS to reason and learn several tasks
efficiently. This is different from performing object-level deep reasoning and
learning, which refers in some way to entities external to the system. In
contrast, NEMESYS enables self-introspection, lifting from object- to
meta-level reasoning and vice versa. In our extensive experiments, we
demonstrate that NEMESYS can solve different kinds of tasks by adapting the
meta-level programs without modifying the internal reasoning system. Moreover,
we show that NEMESYS can learn meta-level programs given examples. This is
difficult, if not impossible, for standard differentiable logic programming
