forall x 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 truth-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 proofs.openlogicproject.org.
Download links below.
Credits and License
The forall x: Calgary Remix 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, and from forall x: Lorain County Remix, by Cathal Woods and J. Robert Loftis, used with permission.
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 github.com/rzach/forallx-yyc.
You can download PDFs of the files here:
forallxyyc.pdf(in color, for screen reading)
forallxyyc-print.pdf(b/w, for printing on Quarto stock)
forallxyyc-letter.pdf(b/w, for printing on regular letter-size paper)
forallxyyc-accessible.pdf(an accessible version for dyslexics)
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
Make PDFs Yourself
forallxyyc.tex(in color, for screen reading)
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
file, put them in a file named
forallxyyc-local.sty. For instance,
to get the connectives to be & for and and horseshoe for the
forallxyyc-local-sample.sty to that file.