We start by giving a compact representation schema for -terms and show how this leads to an exceedingly small and elegant self-interpreter. We then define the notion of a self-reducer, and show how this too can be written as a small -term. Both the self-interpreter and the self-reducer are proved correct. We finally give a constructive proof for the second fixed point theorem for the representation schema. All the constructions have been implemented on a computer, and experiments verify their correctness. Timings show that the self-interpreter and self-reducer are quite efficient, being about 35 and 50 times slower than direct execution using a call-byneed reduction strategy. 1 Preliminaries The set of -terms, , is defined by the abstract syntax: = V j j V: where V is a countable infinite set of distinct variables. (Possibly subscripted) lower case letters a; b; x; y; . . . are used for variables, and capital letters M;N;E; . . . for -terms. We will assume familiarity with the rul...