leanprover / leanprover/reference-manual

Transparency modes

Open
#131 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

doc-request March 2025
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.