  We describe a "top down" approach for automated theorem proving (ATP).
Researchers might usefully investigate the forms of the theorems mathematicians
use in practice, carefully examine how they differ and are proved in practice,
and code all relevant domain concepts. These concepts encode a large portion of
the knowledge in any domain. Furthermore, researchers should write programs
that produce proofs of the kind that human mathematicians write (and publish);
this means proofs that might sometimes have mistakes; and this means making
inferences that are sometimes invalid.
  This approach is meant to contrast with the historically dominant "bottom up"
approach: coding fundamental types (typically sets), axioms and rules for
(valid) inference, and building up from this foundation to the theorems of
mathematical practice and to their outstanding questions. It is an important
fact that the actual proofs that mathematicians publish in math journals do not
look like the formalized proofs of Russell & Whitehead's Principia Mathematica
(or modern computer systems like Lean that automate some of this
formalization). We believe some "lack of rigor" (in mathematical practice) is
human-like, and can and should be leveraged for ATP.
