| Correct (3) | Poor choice (1) | Missing or very wrong (0) | |
|---|---|---|---|
| Main outline | Chooses element from small set and shows it's in big set. | Somewhat clumsy but mathematically sound proof outline. | Outline is very clumsy and/or mathematically unsound. Significant steps lacking justification due to poor choice of outline. |
| Correct (3) | Buggy (2) | Missing or very wrong (0) | |
| Variable declaration and types | All variables are declared before use, especially variables used in the main body of the proof. Type information is mentioned where important. | Small bugs in variable declarations, e.g. forgot to declare an individual variable, didn't specify a type or mention the type when needed. | Variables not declared. Local variables inside set definitions treated as if declared in main body of proof. Several names used for the same variable. |
| Correct (3) | Buggy (2) | Missing or very wrong (0) | |
| Flow of Logic | Proof flows from properties of small set to properties of larger one, in logical order | Proof skips steps, has small sections in backwards order. Small misunderstanding of set definitions. | Proof assumes the claim, runs backwards for a non-trivial ammount, or has large sections missing. Major misunderstanding of what's in the sets. |
| Correct (3) | Buggy (2) | Missing or very wrong (0) | |
| Definitions and Details | Key concepts and definitions stated correctly when needed and used correctly. Algebra details are correct. | Minor errors in definitions or algebra | Fundamental errors or significant missing sections |
| Correct (3) | Buggy (2) | Missing or very wrong (0) | |
| Style and clarity | Written with good style using mathematical English and Latex equations | Slightly hard to follow, Latex not used or not displaying properly, missing some needed words, excessive use of abbreviations, very long paragraphs, or excessive detail/wordiness. | Very hard to follow. For example, very few connector works and justifications. |