Abstract1 Introduction2 Notation and Definitions3 A Proof Using the Order (N, ≤)4 A Proof Using the Ordering (N × N × N × N, <, <lex)5 A General Theorem About Proving Programs Terminate Using Well-Founded Orderings6 A Proof Using Ramsey's Theorem7 A General Theorem About Proving Programs Terminate Using Ramsey Theorem8 A Proof Using Matrices and Ramsey's Theorem9 Another Proof Using Matrices and Ramsey's Theorem10 A Proof Using Transition Invariants and Ramsey's Theorem11 Another Proof Using Transition Invariants and Ramsey's Theorem12 Solving Subcases of the Termination Problem13 How Much Ramsey Theory Do We Need?14 Open Problems15 SummaryAcknowledgments