A personal collection of university-level math problems. Each one is written up as a full solution with the reasoning spelled out and the theorems it leans on cited, then typeset in Typst and compiled to PDF.
One problem per file. Each file keeps its own metadata (title, source, tags),
and the problem index and progress count below are generated from that metadata,
so I don't edit them by hand. Problems written up in Thai live in a -th sibling
file and don't get their own index row.
Every problem has one primary topic. The prefix is the first part of the file name; problems that span a few areas pick one primary topic and put the rest in their tags.
| Prefix | Topic |
|---|---|
calc |
Calculus |
linalg |
Linear Algebra |
alg |
Abstract Algebra |
analysis |
Real Analysis |
complex |
Complex Analysis |
nt |
Number Theory |
combo |
Combinatorics |
prob |
Probability |
topo |
Topology |
ode |
Differential Equations |
| # | Problem | Topics | Source | Solved |
|---|---|---|---|---|
| analysis-001 | Cosine Power–Cosine Fourier Integral | calculus, definite-integral, special-functions, gamma-function, beta-function, complex-analysis, fourier-analysis, trigonometry, induction, analytic-continuation, combinatorics | Romanian Mathematical Magazine, proposed by K. Srinivasa Raghava | 2026-06-21 |
| calc-001 | A Nested Floor–Ceiling Integral | calculus, floor-ceiling, definite-integral | MIT Integration Bee 2026, Qualifying Round, #15 | 2026-06-20 |
- 2 problems solved
- Topics covered: analytic-continuation, beta-function, calculus, combinatorics, complex-analysis, definite-integral, floor-ceiling, fourier-analysis, gamma-function, induction, special-functions, trigonometry
You need Typst 0.14.2 (the version CI uses)
and jq for the index:
winget install Typst.Typst
winget install jqlang.jq
Diagrams use CeTZ (pinned). The first compile downloads it from the Typst package registry and caches it; CI does the same automatically.
Then:
make new T=calc S=gamma-integral # start a new problem (auto-numbers it)
make compile P=calc-001 # compile one problem to output/
make watch P=calc-001 # live preview while editing
make index # rebuild the index from metadata
Other targets: make (compile everything), make topics (push topics.txt into
the docs), make clean.
make new T=<topic> S=<slug>to copy the template.- Fill in the metadata and write the solution. Cite the theorems you use.
make compile P=<topic>-NNNuntil it builds cleanly.make indexto refresh the table above.
See docs/CONVENTIONS.md for naming. The template itself has the sections, metadata, and a checklist commented inline.
Found a mistake or an unclear step, or want to suggest a problem? Open an issue or a PR. CI checks every PR.
The solutions and explanations are licensed CC BY 4.0. The code (the Typst templates and scripts) is MIT. Problem statements taken from other sources stay with those sources and are cited in each file. See NOTICE for the full breakdown.