Sophisticated sudokus as playful proof practice
probablydance.com
probablydance.com
And I encourage anyone with even a slight interest to check out the videos they post where constructors explain how they come up with some of the puzzles. I never imagined I'd be able to do it well or find it fun but I was pleasantly surprised after trying it out and having a blast.
I'm about to start with a new programming language. I think I might want to go back to Peter Norvig's Sudoku solver and layer these data structures on top.
The application of these rules typically produces a linear proof, because we augment the board state sequentially. But that's a human limitation, not a formal one. Since any rule that could be applied always can be applied (so long as there's a unique solution!), if you notice you can do two things from the same proof state, you can imagine a "rule of concurrency" that joins the results from multiple prior rules.
This kind of structure is even clearer in Picross 3D: Round Two, which has two different colors that interact very loosely. You can often work purely in one color, then switch to working on the other color, and go back and forth -- it's like you're interleaving two concurrent actors both collaborating on the same object. A purely semantic perspective doesn't really lend itself to this observation -- but when you've built up a corpus of rules, it's very obvious which rules are color-local and which require a more global view to progress.
They provide a bit of the satisfaction that finishing a good graduate math course homework set does.