leanprover / leanprover/reference-manual
Transparency modes
Nobody has claimed this yet.
- Dominant language
- Lean
- Stars
- 129
- Forks
- 67
- Avg merge
- 1d 15h
- Merged PRs (30d)
- 16
Description
What question should the reference manual answer?
What is the effect of different transparency modes? Both in general, but also in precise enough terms to clarify questions like "what happens if I wrap something in Lean.Meta.withReducible and then wrap that in Lean.Meta.withDefault?" (or the reverse)
What are some rules of thumb for selecting the right transparency mode when metaprogramming?
There is a little bit of information on transparency modes at 7.3.5.1. Controlling Unfolding but it doesn't yet address these kinds of more precise questions.
Additional context
Currently I often make transparency mode decisions by cargo-culting from Leo's practice, not ideal! And there are some surprising and undocumented situations in which the transparency mode designation is overriden.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing “Controlling Unfolding” section linked in the issue, then investigate the documented transparency-mode behavior and the referenced discussions about nested modes and implicit arguments. Done means the reference manual explains the modes, their nesting order, surprising cases, and practical selection rules precisely enough to answer the stated examples.
Written by the indexing model from the issue text.
Assessment
- Domain
- compilers, documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100