Yes, a proper definition of reasoning must be provided. How are you defining reasoning, exactly? You imply that formal logic is reasoning. Is reasoning just formal logic or is formal logic just a subset of reasoning? If a subset, what’s the rest of it? Since they implement logic, do Prolog programs “reason” or are they just performing inference according to the SLD resolution algorithm?