[The following is quoted at length from The Mathematical Experience, by Philip J. Davis & Reuben Hersh, pp. 285-287.]

George Pólya (1888-) has had a scientific career extending more than seven decades. A brilliant mathematician who has made fundamental contributions in many fields, Pólya has also been a brilliant teacher, a teacher's teacher, and an expositor. Pólya believes that there is a craft of discovery. He believes that the ability to discover and the ability to invent can be enhanced by skillful teaching which alerts the student to the principles of discovery and which gives him an opportunity to practice these principles.

In a series of remarkable books of great richness, the first of which was published in 1945, Pólya has crystallized these principles of discovery and inventioin out of his vast experience, and has shared them with us both in precept and in example. These books are a treasure-trove of strategy, know-how, rules of thumb, good advice, anecdote, mathematical history, together with problem after problem at all levels and all of unusual mathematical interest. Pólya places a global plan for "How to Solve It" in the endpapers of this book of that name:

- First:
- you have to
*understand*the problem. - Second:
- find the connection between data and the unknown. You may be obliged to
consider auxilliary problems if an immediate connection cannot be found. You
should obtain eventually a
*plan*of the solution. - Third:
*Carry out*your plan.- Fourth:
*Examine*the solution obtained.

These precepts are then broken down to "molecular" level on the opposite endpaper. There, individual strategies are suggested which might be called into play at appropriate moments, such as

- If you cannot solve the proposed problem, look around for an appropriate, related problem
- Work backwards
- Work forwards
- Narrow the condition
- Widen the condition
- Seek a counterexample
- Guess and test
- Divide and conquer
- Change the conceptual mode

Each of these heuristic principles is amplified by numerous appropriate examples.

Subsequent investigators have carried Pólya's ideas forward in a number of ways. A. H. Schoenfeld has made an interesting tabulation of the most frequently used heuristic principles in college-level mathematics. We have appended it here.

*Draw a diagram*if at all possible.*Examine special cases*:- Choose special values to exemplify the problem and get a "feel" for it.
- Examine limiting cases to explore the range of possibilities.
- Set any integer parameters equal to 1, 2, 3, ..., in sequence, and look for an inductive pattern.

*Try to simplify the problem*by- Exploiting symmetry, or
- "Without Loss of Generality" arguments (including scaling)

*Consider essentially equivalent problems*:- Replacing conditions by equivalent ones.
- Re-combining the elements of the problem in different ways.
- Introduce auxilliary elements.
- Re-formulate the problem by
- change of perspective or notation
- considering argument by contradiction or contrapositive
- assuming you have a solution, and determining its properties

*Consider slightly modified problems*:- Choose subgoals (obtain partial fulfillment of the conditions)
- Relax a condition and then try to re-impose it.
- Decompose the domain of the problem and work on it case-by-case.

*Consider broadly modified problems*:- Construct an analogous problem with fewer variables.
- Hold all but one variable fixed to determine that variable's impact.
- Try to exploit any related problems which have similar
- form
- "givens"
- conclusions.

Remember: when dealing with easier related problems, you should try to
exploit both the *result* and the *method of solution* on the
given problem.

*Does your solution pass these specific tests*:- Does it use all the pertinent data?
- Does it conform to reasonable estimates or predictions?
- Does it withstand tests of symmetry, dimension analysis, or scaling?

*Does it pass these general tests?*- Can it be obtained differently?
- Can it be substantiated by special cases?
- Can it be reduced to known results?
- Can it be used to generate something you know?