Notes on books I'm currently studying https://bookshelf.jrpotter.com
  • TeX 59.1%
  • Lean 40.1%
  • Nix 0.6%
  • Dockerfile 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-15 20:11:11 +00:00
Bookshelf Update to lean v4.3.0 2023-12-14 13:29:09 -07:00
Common Update to lean v4.3.0 2023-12-14 13:29:09 -07:00
.containerignore Add a Containerfile. 2026-09-06 08:59:25 -06:00
.env Update lean toolchain and incorporate documentation generation. 2023-05-03 15:31:33 -06:00
.envrc Add flake. 2023-12-14 13:42:16 -07:00
.gitignore Add flake. 2023-12-14 13:42:16 -07:00
bookshelf.container Fix health check. 2026-09-15 20:11:11 +00:00
Bookshelf.lean Move aviary into Smullyan directory. 2023-06-29 15:30:48 -06:00
Common.lean Enderton. Corollary 4P. 2023-08-08 08:56:13 -06:00
Containerfile Limit texlive install. 2026-09-10 19:59:12 -06:00
flake.lock Add flake. 2023-12-14 13:42:16 -07:00
flake.nix Build bookshelf documentation. 2023-12-16 07:49:46 -07:00
lake-manifest.json Build bookshelf documentation. 2023-12-16 07:49:46 -07:00
lake-manifest.nix Build bookshelf documentation. 2023-12-16 07:49:46 -07:00
lakefile.lean Load doc-gen4 as a git dependency. 2023-12-15 14:45:22 -07:00
lean-toolchain Update to lean v4.3.0 2023-12-14 13:29:09 -07:00
Main.lean Update to doc-gen4 commit e859e2f. 2023-11-07 18:36:00 -07:00
preamble.tex Update equinumerous to infix equin command. 2023-09-30 14:29:50 -06:00
README.md Add a Containerfile. 2026-09-06 08:59:25 -06:00

bookshelf

A study of the books listed below.

Overview

Most proofs are conducted in LaTeX. Where feasible, theorems are also formally proven in Lean.

  • Apostol, Tom M. Calculus, Vol. 1: One-Variable Calculus, with an Introduction to Linear Algebra. 2nd ed. Vol. 1. 2 vols. Wiley, 1991.
  • Avigad, Jeremy. Theorem Proving in Lean, n.d.
  • Axler, Sheldon. Linear Algebra Done Right. Undergraduate Texts in Mathematics. Cham: Springer International Publishing, 2015.
  • Cormen, Thomas H., Charles E. Leiserson, Ronald L. Rivest, and Clifford Stein. Introduction to Algorithms. 3rd ed. Cambridge, Mass: MIT Press, 2009.
  • Enderton, Herbert B. A Mathematical Introduction to Logic. 2nd ed. San Diego: Harcourt/Academic Press, 2001.
  • Enderton, Herbert B. Elements of Set Theory. New York: Academic Press, 1977.
  • Gries, David. The Science of Programming. Texts and Monographs in Computer Science. New York: Springer-Verlag, 1981.
  • Gustedt, Jens. Modern C. Shelter Island, NY: Manning Publications Co, 2020.
  • Ross, Sheldon. A First Course in Probability Theory. 8th ed. Pearson Prentice Hall, n.d.
  • Smullyan, Raymond M. To Mock a Mockingbird: And Other Logic Puzzles Including an Amazing Adventure in Combinatory Logic. Oxford: Oxford university press, 2000.

Building

Nix

direnv can be used to launch a dev shell upon entering this directory (refer to .envrc). Otherwise run via:

$ nix develop

Container

Build and run the container like so:

$ podman build -t bookshelf .
$ podman run -p 4001:4001 bookshelf

You can also install the bookshelf.container Quadlet:

$ podman build -t bookshelf .
$ podman quadlet install bookshelf.container

Lake

If you prefer, you can also use the elan package manager like normal. Build the project by running

$ lake build
$ lake build Bookshelf:docs

View the generated files by running python3 -m http.server from within the .lake/build/doc directory.

NGINX

Use Let's Encrypt to get a TLS certificate:

$ certbot certonly --standalone -d bookshelf.jrpotter.com

You can then expose the container by including the following stanza within an NGINX config:

server {
    server_name bookshelf.jrpotter.com;

    listen 80;
    listen [::]:80;
    listen 443 ssl;
    listen [::]:443 ssl;

    ssl_certificate     /etc/letsencrypt/live/bookshelf.jrpotter.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/bookshelf.jrpotter.com/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:4001;
        proxy_set_header Connection $http_connection;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}