Symbolic reasoning and formal logic