symbolic reasoning