A Theory of Singly-Linked Lists and its Extensible Decision Procedure