lean4-htt/tests/pkg/module/Module
Leonardo de Moura 4606c35c40
feat: @[instance_reducible] (#12247)
This PR adds the new transparency setting `@[instance_reducible]`. We
used to check whether a declaration had `instance` reducibility by using
the `isInstance` predicate. However, this was not a robust solution
because:

- We have scoped instances, and `isInstance` returns `true` only if the
scope is active.

- We have auxiliary declarations used to construct instances manually,
such as:

```lean
    def lt_wfRel : WellFoundedRelation Nat
```
    
`isInstance` also returns `false` for this kind of declaration.

In both cases, the declaration may be (or may have been) used to
construct an instance, but `isInstance`
returns `false`. Thus, we claim it is a mistake to check the
reducibility status using `isInstance`.
`isInstance` indicates whether a declaration is available for the type
class resolution mechanism,
not its transparency status.

**We are decoupling whether a declaration is available for type class
resolution from its transparency status.**

**Remak**: We need a update stage0 to complete this feature.

---------

Co-authored-by: Sebastian Ullrich <sebasti@nullri.ch>
2026-02-01 03:03:16 +00:00
..
Basic.lean feat: @[instance_reducible] (#12247) 2026-02-01 03:03:16 +00:00
Basic2.lean fix: import-merging theorems under the module system (#10556) 2025-09-26 13:02:51 +00:00
ConflictingImported.lean fix: import-merging theorems under the module system (#10556) 2025-09-26 13:02:51 +00:00
Imported.lean fix: revert "split ngen on async elab" (#12148) 2026-01-25 03:18:24 +00:00
ImportedAll.lean fix: grind using congr equation of private imported matcher (#11756) 2025-12-21 17:59:52 +00:00
ImportedAllImportedAll.lean fix: privacy checks and import all (#10550) 2025-09-26 13:26:10 +00:00
ImportedAllPrivateImported.lean chore: avoid confusing public import all combination (#10051) 2025-08-22 12:04:42 +00:00
ImportedImportedAll.lean feat: make private the default in module (#9044) 2025-06-28 16:30:53 +00:00
ImportedPrivateImported.lean chore: even more module system fixes and refinements from Mathlib porting (#10726) 2025-10-15 14:59:09 +00:00
MetaImported.lean fix: detect private references in inferred type of public def (#10762) 2025-10-15 12:51:54 +00:00
NonModule.lean feat: dedicated fix operator for well-founded recursion on Nat (#7965) 2025-12-01 12:51:55 +00:00
PrivateImported.lean chore: even more module system fixes and refinements from Mathlib porting (#10726) 2025-10-15 14:59:09 +00:00