Leanpub Header

Skip to main content

Logic for Programmers

Logic is the most important branch of math to software engineering. Knowing logic opens up a vast world of development techniques, from everyday tricks of the trade to exotic tools for cracking impossible tasks.

This book teaches the basics of logic and nine special logic-powered techniques: property testing, decision tables, constraint solving, and more. Over 50 exercises are provided to help readers master the material. No prior math background required!

Minimum price

$30.00

$40.00

You pay

$40.00

Author earns

$32.00
$

...Or Buy With Credits!

You can get credits with a paid monthly or annual Reader Membership, or you can buy them here.

Buying multiple copies for your team? See below for a discount!

PDF
EPUB
1,903
Readers
200
Pages
About

About

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 know 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 that sensor_offline is true, does the value of inactive 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 50 exercises are provided to help readers master the material. No prior math background required!


------


The book's current status is GAMMA. All of the content is in but I am still in the process of copyediting, formatting, and proofreading. The final 1.0 release will be sometime mid 2026. If you buy the book now, you'll get all future version for free as well as input into how it develops.



 New in v0.13:


  • All chapters now explain what they will cover in the introduction
  • First draft of chapter diagrams
  • All chapters rewritten. Some of the notable changes:
    1. “Crash Course” chapter now foreshadows how the math ties into various techniques, subtyping, expressiveness
    2. “Writing Better Tests” has more conceptual coverage of partial specs, structural and metamorphic properties
    3. “Composing Code Correctly” teaches contracts before assertions and generalizes subtyping rules to functions
    4. “Proofs” has section on inductive proofs, more Dafny coverage
    5. “Working with Databases” now comes before “Case Analysis”, more on left joins, schema compatibility
    6. “Case Analysis” now “Decoding Decisions”, pretty much the same aside from reorganization
    7. “Data modeling” now “domain modeling”, which fits the overall thrust of the chapter better. Rewritten with this in mind
    8. “Designing Systems” replaces PlusCal section with more in-depth TLA+ and refinement
    9. “Solvers” has more on SMT solving
    10. “Logic Programming” covers Answer Set Programming
  • Added “Coda” chapter
  • Expanded “Useful Rules” appendix
  • New logic theme: compatibility, a pattern across LSP, Refinement, and data modeling
  • Index page reworked with more detail on book themes
  • PDF: code diffs now show removals with strikethrough
  • Removed content on disj term (nothing in the book used it)
  • Various reader feedback and fixes
  • 9 exercises removed, 17 added (+8 total)



----


Table of Contents


1. Acknowledgements

2. Part I: Introduction

1. Early access notes

2. A crash course in logic

3. Part II: Techniques

1. Refactoring code

2. Writing Better Tests (property testing)

3. Composing Code Correctly (contracts, subtyping)

4. Proving Code Correct (formal verification)

5. Working with Data (database theory)

6. Decoding Decisions (decision tables)

7. Modeling Domains (Alloy, formal specification)

8. Designing Systems (TLA+)

9. Solving Math Problems (Constraint/Integer/SMT solving)

10. Logic programming (Prolog, Datalog, ASP)

4. Part III: Appendices

1. Math notation

2. Useful rules

3. Other ideas in logic

4. Answers to Exercises

Team Discounts

Team Discounts

Get a team discount on this book!

  • Up to 3 members

    Minimum price
    $62.00
    Suggested price
    $75.00
  • Up to 5 members

    Minimum price
    $100.00
    Suggested price
    $120.00
  • Up to 10 members

    Minimum price
    $175.00
    Suggested price
    $210.00
  • Up to 15 members

    Minimum price
    $250.00
    Suggested price
    $300.00
  • Up to 25 members

    Minimum price
    $375.00
    Suggested price
    $450.00

Author

About the Author

Hillel Wayne

I juggle and make chocolate.

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

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 earned over $14 million writing, 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

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub