Laying out theorems, lemmas etc., and marking succeeding proofs:
- amsthm.sty (the theorem setup of the AMS document classes amsart, amsbook, etc., in stand-alone package form, which should be in any LaTeX distribution) defines environments which are much more configurable than the basic LaTeX ‘theorem’ environment. There’s a description here, and a more extensive account in Chapter 3 of the Companion.
- ntheorem.sty (Wolfgang May and Andreas Schedler) is another, even more flexible, package.
- The thmtools bundle (Ulrich M. Schwarz 2010) contains a number of useful packages, in particular thm-restate.sty which allows you to label a theorem and then restate it later (with the same number).
- If you just need a correctly-placed end-of-proof marker, then QED.sty (Paul Taylor, 1993-2003) supplies right-justified marks.
Setting algorithms
- Use algorithms.sty (Peter Williams, 1996, 2004, Rogério Brito 2005) for laying out algorithms in a standard form).
Branching quantifiers
- The neatest way of setting these is suggested by Colin McClarty: use the pmatrix structure available in amsmath package, illustrated here: branching quantifiers.
Back to Frege
- begriff.sty (Josh Parsons, 2003) sets Begriffsschrift-style expressions.
Finally,
- Some assorted typesetting solutions are provided by Gregory Wheeler at LaTeX for Philosophers.