Skip to content

coffinproblems/coffins

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Coffin problems

This project catalogues the so-called Coffin problems: mathematical problems that in the 1960s, 1970s, and 1980s were administered at the entrance examinations of some Soviet universities for the purpose of preventing the enrolment of applicants who were deemed undesirable, category which mainly included people of Jewish descent. The problems were given at the oral exams to the 'undesirable' candidates.

This repository's goal is to exhaustively catalogue these problems, and to provide solutions. Some problems also admit interesting generalisations, which are also catalogued.

For historical information on the topic, consult the historical references.

Download

Download in PDF format:


Alternate download options are also available, for downloading separately the problem statements and the solutions.
Other formats are also provided:

  • minimal PDF: PDF file without introduction, table of contents, and references;
  • EPUB MathML: reflowable ebook, with math content in MathML format;
  • EPUB SVG: reflowable ebook, with math content rendered as SVG;

Note

At the moment, EPUB files are problematic:

  • EPUB files with MathML are not provided, due to issues in generating them;
  • EPUB files with SVG are provided, but they exhibit some formatting issues.
PDF Minimal PDF EPUB MathML EPUB SVG
Problems Download Download [Not available] Download
Solutions Download Download [Not available] Download
Problems and solutions Download Download [Not available] Download

The same are also available for the generalisations of the problems:

PDF Minimal PDF EPUB MathML EPUB SVG
Problems Download Download [Not available] Download
Solutions Download Download [Not available] Download
Problems and solutions Download Download [Not available] Download

Status

The current number of documented problems is: 111.

Currently, not all solutions have been written.

The problems have been categorised by topic, as follows:

  • Evaluations (4 problems): problems that ask to determine the value of an expression;
  • Comparisons (6 problems): problems that ask to determine which of two numbers is greater than the other;
  • Equations (13 problems): problems that ask to solve an equation or system of equations over the real or complex numbers;
  • Inequations (6 problems): problems that ask to solve an inequation;
  • Algebra and Number Theory (13 problems): problems in Algebra or in Number Theory;
  • Analysis (7 problems): problems in Analysis;
  • Plane Geometry (27 problems): problems in planar Euclidean Geometry;
  • Solid Geometry (21 problems): problems in 3D Geometry;
  • Geometric constructions (12 problems): problems that ask to perform constructions via only straightedge and compass;
  • Other problems (2 problems): problems that do not fit in any specific category.

Contributing

More details are provided in CONTRIBUTING.md.

Important

Please, when opening an issue or leaving a comment about a coffin problems, hide in an expandable block of text any information pertaining to the solution of the problem, so that people who wish to solve the problems independently don't get accidental hints.

A non-exhaustive list of welcomed contributions:

  • Submit coffin problems that are not already documented here.
  • Submit additional references, sources, or other resources that corroborate some of the already documented coffin problems.
  • Submit additional historical references.
  • Help digitising and/or translating the historical documents used as sources: see the dedicated repository resources.
  • Report errors, inaccuracies, etc.
  • Suggest improvements in the wording throughout the document.
  • Propose additional solutions to problems, or improvements to the existing ones.
  • Suggest possible improvements to the LaTeX source code.
  • Sift through the references to see if any of them contain any information that was missed.
  • Sift through user discussions about relevant topics to see if there is any new information. See here for details.
  • Help to identify and contact people that might have useful information.

See CONTRIBUTING.md for more details.

Building

Requirements

A TeX distribution is needed. Some features are not available in TeX distribution versions prior to 2024; for compiling with those older versions, the branch alt is provided (and the build instructions are the same).

More info

This project makes use of the LaTeX package l3sys-query for reading the first-level subdirectories inside src/problems/ without requiring shell escape.
In the branch alt, those subdirectories are renamed to only numbers to make them accessible with a standard \loop macro.

Generate PDF

The following command, run from within the src directory, generates the "default" PDF file, containing the original problems (with the statements in the first part of the document, and the solutions in the second part):

latexmk main.tex

The resulting file is placed in the output directory (outside of src), and the intermediate auxiliary files are placed in the build directory (outside of src).

Note

If the build process is carried out in a Docker container, the output directory should be mounted to the container in order to get access to the generated output files. Similarly, the build directory needs to be mounted in order to have access to the logs and the other auxiliary files.

TeX engines

Compilation is possible with the pdfLaTeX and LuaLaTeX compilation engines; the engine used by default is LuaLaTeX.

To compile with pdfLaTeX, set the -pdflatex option when running latexmk:

latexmk -pdflatex main.tex

or change $pdf_mode = 4 to $pdf_mode = 1 in the latexmkrc file (located in the src directory).

Generate ebook

Warning

ebook generation is currently not reliable.

Note

The following instructions utilize the tex4ebook command, which is generally already included with TeX distributions.
It is recommended to have tidy installed, which, if available, is used by tex4ebook.

For generating an ebook in EPUB3 format, run this command from within the src directory:

tex4ebook --build-dir ../build_epub3 --output-dir ../output -f epub3 main.tex mathml

This generates the document in EPUB version 3, with mathematical notation encoded in the MathML format.

Important

The MathML-encoded results are currently broken: the generated documents have incomplete formulas, and messed up text and formatting, or fail to build entirely.
Encoding Maths content as svg or png produces more usable results, though some issues persist.

For SVG Maths, use this command:

tex4ebook --build-dir ../build_ebook_svg --output-dir ../output -f epub main.tex svg

For PNG Maths, use this command:

tex4ebook --build-dir ../build_ebook_png --output-dir ../output -f epub main.tex png

Note

The epub option in the above two commands can be replaced by any format among epub, epub3, mobi, azw, azw3; but in order to generate ebooks in mobi, azw and azw3 formats, calibre needs to be installed, because tex4ebook uses the command ebook-convert, provided by calibre.

Note

The commands described above use pdfTeX as engine. Compilation with LuaTeX is currently not working.
In any case, to use LuaTeX as engine anyway, use tex4ebook -l in place of tex4ebook in the commands.

Compilation variants

Various compilation options are available for customising the document. They are identified by the following keywords:

  • ORIGINAL: to print the original problems
  • GENERALISED: to print the generalised problems
  • ALL: to print both the original and the generalised problems (equivalent to setting both ORIGINAL and GENERALISED)

Note

ORIGINAL is enabled by default if none among GENERALISED and ALL is set.

  • UNCATEGORISED: to not subdivide the problems into categories by topic

  • NUMBERCATEGORIES: to make the categories sections numbered (only has effect if UNCATEGORISED is not set)

  • GLOBALNUMBERING: to number the problems globally instead of within sections (this is automatic if UNCATEGORISED is set)

  • NOSOLUTIONS: to not print the solutions

  • ONLYSOLUTIONS: to only print the solutions

Warning

Setting both NOSOLUTIONS and ONLYSOLUTIONS will result in an empty document.

  • NOSOURCES: to omit printing the sources at each problem statement

  • MOREREFS: to print additional references for further reading (at the end of the document, after the main references)

  • FORUMREFS: to print references to user discussions (at the end of the document, after the other references)

  • MINIMAL: to omit introduction, table of contents, sources, and references


To specify the desired options when building the document as a PDF, use the following command to compile, replacing each "OPTION" with a desired option from the above list (any number of options can be specified with this syntax):

latexmk -g -usepretex='\def\OPTION{} \def\OPTION{}' main.tex

To specify options in ebook generation, add "" "" '\\def\\OPTION{} \\def\\OPTION{}' at the end of the tex4ebook command, like this:

tex4ebook --build-dir ../build_ebook_svg --output-dir ../output -f epub -e main.tex svg "" "" '\\def\\OPTION{} \\def\\OPTION{}'

Important

Make sure to enclose the string of options in single quotes, or escape the backslashes if using double quotes: "\\\\def\\\\OPTION{} \\\\def\\\\OPTION{}". Make sure that the string containing the options is the fifth positional argument; if omitting the svg or png or mathml argument, then an extra empty string "" is needed in its place.


Some examples

  • to get the generalised problems:
latexmk -g -usepretex='\def\GENERALISED{}' main.tex
tex4ebook -B ../build_ebook_svg -d ../output -f epub main.tex svg "" "" '\\def\\GENERALISED{}'
  • to get the statements of the original problems, without the solutions:
latexmk -g -usepretex='\def\NOSOLUTIONS{}' main.tex
tex4ebook -B ../build_ebook_svg -d ../output -f epub main.tex svg "" "" '\\def\\NOSOLUTIONS{}'
  • to get the solutions to the generalised problems:
latexmk -g -usepretex='\def\GENERALISED{} \def\ONLYSOLUTIONS{}' main.tex
tex4ebook -B ../build_ebook_svg -d ../output -f epub main.tex svg "" "" '\\def\\GENERALISED{} \\def\\ONLYSOLUTIONS{}'
  • to get a minimal document, containing both original and generalised problems, without subdividing the problems by topic:
latexmk -g -usepretex='\def\ALL{} \def\UNCATEGORISED{} \def\MINIMAL{}' main.tex
tex4ebook -B ../build_ebook_svg -d ../output -f epub main.tex svg "" "" '\\def\\ALL{} \\def\\UNCATEGORISED{} \\def\\MINIMAL{}'

Reproducible builds

PDF builds are reproducible.
In order to reproduce a PDF build, use the same TeX distribution, version, and engine as the target file, set the environment variable SOURCE_DATE_EPOCH to match that of the target build (and consider setting FORCE_SOURCE_DATE=1 too), set the same compilation options (if any), and use the same -jobname:

SOURCE_DATE_EPOCH=0 FORCE_SOURCE_DATE=1 latexmk -g -usepretex='\def\OPTION{} \def\OPTION{}' main.tex -jobname="jobname"

All the required parameters are kept up-to-date here.

PDF standards compliance

The PDF files are conformant with the PDF/A-4f standard, and the accessibility standards PDF/UA-2 and WTPDF-1.0 (Well-Tagged PDF); their PDF version is PDF 2.0.

When building the project from source, by default the standard is set to PDF/A-2u, with PDF version PDF 1.7.

For building PDFs satisfying the other standards (PDF/A-4f, PDF/UA-2, WTPDF-1.0, PDF 2.0) use the compilation option TAGPDF (together with any other desired compilation options):

latexmk -g -usepretex='\def\TAGPDF{}' main.tex

Note

A TeX distribution version from 2025 or later is required for this. Additionally, compilation needs to be performed with LuaLaTeX (not with PDFLaTeX).

It is also possible to build PDF files satisfying the PDF/A-3a standard and the accessibility standard PDF/UA-1, under PDF version PDF 1.7; to do so, set the compilation option PDFAA (together with any other desired compilation options):

latexmk -g -usepretex='\def\PDFAA{}' main.tex

Note

A TeX distribution version from 2025 or later is required for this. Additionally, compilation needs to be performed with LuaLaTeX (not with PDFLaTeX).

Compliance validation

Verifying that a PDF file is conformant to certain PDF standards can be done with VeraPDF, either online at https://demo.verapdf.org/, or locally. To test a PDF file locally, run the following command (note that it requires VeraPDF to be installed):

verapdf --flavour 0 --format text path/to/file.pdf

Contact

The project can be contacted at:

License

This work is made available without restrictions. See LICENSE.

References

Note

The references are also available in bib format in the file references.bib

Additional references

For a more complete historical overview, below are some additional resources.

Note

These additional resources are also listed in bib format in the file further_reading.bib.

User discussions

Relevant user discussions and forum posts.

Note

These references are also listed in bib format in the file discussions.bib.