Symbolic reasoning