forall x: Calgary

Book Cover
Book Cover


forall x: Calgary is a full-featured textbook on formal logic. It covers key notions of logic such as consequence and validity of arguments, the syntax of truth-functional propositional logic TFL and truth-table semantics, the syntax of first-order (predicate) logic FOL with identity (first-order interpretations), translating (formalizing) English in TFL and FOL, and Fitch-style natural deduction proof systems for both TFL and FOL. It also deals with some advanced topics such as modal logic, soundness, and functional completeness. Exercises with solutions are available. It is provided in PDF (for screen reading, printing, and a special version for dyslexics) and in LaTeX source code. A proof editor/checker for the proof system used is available at

Download links below.

Credits and License

forall x: Calgary is based on forall x: Cambridge, by Tim Button used under a CC BY 4.0 license, which is based in turn on forall x, by P.D. Magnus used under a CC BY 4.0 license, and was remixed, revised, & expanded by Aaron Thomas-Bolduc & Richard Zach. It includes additional material from forall x by P.D. Magnus and Metatheory by Tim Button, both used under a CC BY 4.0 license, from forall x: Lorain County Remix, by Cathal Woods and J. Robert Loftis, used with permission, and A Modal Logic Primer by Robert Trueman, used with permission.

Creative Commons License

This work is licensed under a Creative Commons Attribution 4.0 International License.

The LaTeX source code for this work is available on GitHub at


You can download PDFs of the files here:

Note that these files change whenevery the source files are changed. So if you use the text in a course, better to download the PDFs and make them available to students directly, than to link here.

Buy a Printed Copy

If you’d like to purchase a nice paperback copy, you can do so on Amazon (US | CA | UK | DE), or use search in your local Amazon store. Be sure to get the latest version that’s available in print (Fall 2020). The version on Amazon usually is not as current as the PDF.

(The process for getting the book printed is described here and here.)

Make PDFs Yourself

Clone the GitHub repository locally or download the ZIP file and run LaTeX on one of

  • forallxyyc.tex (in color, for screen reading)
  • forallxyyc-accessible.tex (accessible version)
  • forallxyyc-print.tex (b/w, for printing on Quarto stock)
  • forallxyyc-letter.tex (b/w, for printing on regular letter-size paper)

You’ll have to run makeglossaries to produce the glossary as well.

To make changes to the definitions in the preamble and forallyyc.sty file, put them in a file named forallxyyc-local.sty. For instance, to get the connectives to be ∼, &, ⊃, ≡ instead of ¬, ∧, →, ↔, and atomic formulas Lab instead of L(a,b), copy forallxyyc-local-sample.sty to that file.