How neural networks simulate symbolic reasoning