Logic for Programmers
Logic for Programmers
About the Book
If I start a build at 3:05 PM and it takes 12 minutes to complete, when will the build be finished?
To answer this question, we need to how to manipulate numbers. The mathematics of numbers is called "arithmetic". Arithmetic shows us how to multiply two numbers, use fractions, determine which of two numbers is larger, and more.
If I have the conditional if(sensor_offline || inactive), and I know for sure thatsensor_offline
is true, does the value ofinactive
matter?
To answer this question, we need to know how to manipulate booleans. The mathematics of booleans is called "logic". Logic shows us how to simplify a boolean expression, use sets, determine if one statement is stronger than another, and more.
But there is one key difference between arithmetic and logic. We were taught arithmetic in elementary school. Few of us were formally taught logic. Most programmers pick up a little logic by osmosis, but even that rarely exposes people to anything beyond the basics. This makes logic the single most useful topic in math a programmer can learn.
That is the goal of this book. Reading this will teach you the basics of logic and how to apply it to various everyday software problems, like testing code, designing a database, working out customer requirements, and more. Over 40 exercises are provided to help readers master the material. No prior math background required!
------
The book's current status is BETA. Most of the content is in but I will be changing the prose and polishing based on reader feedback. I also need to give more attention to book layout, formatting, proofreading, and paying an artist for an Actually Good Cover Page. And there's always room for more useful exercises!
I will release new betas monthly, with the final 1.0 coming sometime mid-late 2025. If you buy the book now, you'll get all future version for free as well as input into how it develops. I'll be raising the price to 25 once 1.0 is ready.
New in v0.7:
- New fonts!
- Changed formatting and indentation for code blocks
- "Functional Correctness" chapter has new section on type invariants
- "Data Modeling" chapter has new example on finding design bugs via modeling
- "Conditionals" chapter now covers redundant conditionals more broadly
- Rewrote intro, "Why this book" section cleaner
- Incorporated various reader feedback
Table of Contents
- Acknowledgements
-
Part I: Introduction
- 1. Early access notes
- 2. A crash course in logic
-
Part II: Techniques
- 1. Testing and property testing
- 2. Functional correctness and contracts
- 3. Case coverage and decision tables
- 4. Conditional simplification
- 5. Database constraints
- 6. Data modeling and formal specification
- 7. System modeling and TLA+
- 8. Constraint solving
- 9. Logic programming
-
Part III: Appendices
- 1. Math notation
- 2. Rewrite rules
- 3. Other ideas in logic
- 4. Answers to Exercises
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $14 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them