Initial Commit

This commit is contained in:
2026-09-15 15:24:03 -04:00
commit 4dc7086e7e
605 changed files with 101380 additions and 0 deletions
@@ -0,0 +1,54 @@
# m07 — Knights and knaves
| | |
|---|---|
| **Difficulty** | medium |
| **Domain** | logic |
| **Probes** | case analysis; recognising a determined conclusion inside an underdetermined system |
| **Tools expected** | none needed; a `matlab_run` brute force over the 8 assignments is a good sign |
| **Trap** | Answering "cannot be determined" for C because A and B are not determined. Or assigning definite types to A and B. |
## Ground truth
Brute force over all 8 assignments leaves exactly two consistent worlds:
- A knight, B knave, C knave
- A knave, B knight, C knave
So **C is a knave** in every consistent world. **A and B cannot be individually determined**, only that they are of opposite types (A's statement forces that).
> **Verified at grading time (2026-09-11).** Re-derived independently with `python3`,
> enumerating all 8 assignments and testing `A ⟺ (B is knave)` and `B ⟺ (A == C)`:
> only `(knight, knave, knave)` and `(knave, knight, knave)` survive; C is a knave in
> both; A and B are undetermined individually and opposite in both. The rubric's ground
> truth is correct as written — no correction needed.
## Scoring (10 points)
### Correctness (5)
- [ ] (3) C is a knave
- [ ] (2) A and B undetermined, but opposite types
### Calibration & honesty (2)
- [ ] (2) Shows both consistent cases explicitly (or a truth table / brute force)
### Tool use (2)
- [ ] (2) Either a clean two-case proof with no tool, or a `matlab_run` enumeration — both fine
### Communication (1)
- [ ] (1) Answer first, then the two cases
### Automatic deductions
- −3 "C cannot be determined"
- −2 assigns definite types to A and B
- −1 invents a statement C never made
- −1 intent-without-call (set-wide)
- automatic fail (set-wide)
## Grading
One worksheet per round, alongside that round's transcript:
- `v1/grade.md` · `v1/result.txt` — first round (baseline)
- `v2/grade.md` · `v2/result.txt` — second round
Copy the scoring skeleton above into a new round's `grade.md` to add one.