This page describes what emath treats as untrusted, the defenses in place today, the defenses planned for later stages, and how to report a problem.
.emathfiles, and the files and libraries theyuse.- Values given with
--set. - Receipts read back by
emath resume, and run folders (.dream/NAME/) read back byemath dream resume,forkandwatch. - The Rust that
emath nativegenerates and builds withrustc, and the Lean thatemath export lean --checkhands to Lean.
- No outside effects from a file. An
.emathfile can compute, show and check. It reads only the.emathfiles it uses, and cannot run commands, open the network, or write files. - Bounded runs. The interpreter counts its work in engine steps and stops a line at the work limit (100,000,000 steps unless a file raises it), and a definition nested past 10,000 calls stops with a message instead of crashing.
- Refusal instead of guessing. A step that cannot be done refuses with a reason instead of giving a wrong answer.
- No hidden code paths. Mathematics is written in emath; the engine does not dispatch on subject names.
- Sealed records. A
--jsonreceipt and every line of a dream journal carry the SHA-256 of the engine and of every file read, and a seal.emath resumeandemath dream resumerefuse when the record, the engine or any file it read has changed. - Guarded writes.
emath dreamrefuses to start a run under a name that already exists.emath fmtdoes not make a change that would alter more than spaces. - Determinism. A run gives the same answer every time, so a result can be reproduced and audited.
emath native runs without the work limit: a line runs until it ends.
It builds and runs a program on your machine, so treat a file you run
natively like any other code you compile and run.
These belong to later stages and are not implemented yet:
- Content-locked package resolution for package publishing.
- Sandboxing for bridges to outside solvers.
Please do not open a public issue for a security problem, and do not post exploit inputs publicly. Contact the author (Aditya) privately with a description and a minimal reproduction. A dedicated reporting address and disclosure policy will be published before the first public release.