lean4-htt/tests/pkg/module/Module
Kyle Miller 48a715993d
fix: pretty printing of constants should consider accessibility of names (#12654)
This PR fixes two aspects of pretty printing of private names.
1. Name unresolution. Now private names are not special cased: the
private prefix is stripped off and the `_root_` prefix is added, then it
tries resolving all suffixes of the result. This is sufficient to handle
imported private names in the new module system. (Additionally,
unresolution takes macro scopes into account now.)
2. Delaboration. Inaccessible private names use a deterministic
algorithm to convert private prefixes into macro scopes. The effect is
that the same private name appearing in multiple times in the same
delaborated expression will now have the same `✝` suffix each time. It
used to use fresh macro scopes per occurrence.

Note: There is currently a small hack to support pretty printing in the
compiler's trace messages, which print constants that do not exist (e.g.
`obj`, `tobj`, and auxiliary definitions being compiled). Even though
these names are inaccessible (for the stronger reason that they don't
exist), we make sure that the pretty printer won't add macro scopes. It
also does some analysis of private names to see if the private names are
for the current module.

Closes #10771, closes #10772, and closes #10773
2026-02-25 00:01:19 +00:00
..
Basic.lean fix: mark failed compilations as noncomputable (#12625) 2026-02-23 09:18:21 +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 chore: do not rely on Name.lt for ordering fvars in acLt (#12306) 2026-02-08 14:25:31 +00:00
ImportedAll.lean fix: pretty printing of constants should consider accessibility of names (#12654) 2026-02-25 00:01:19 +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: mark failed compilations as noncomputable (#12625) 2026-02-23 09:18:21 +00:00
NonModule.lean fix: no defeq equations for irreducible definitions (#12429) 2026-02-11 11:49:10 +00:00
PrivateImported.lean fix: [local simp] on privately imported theorem (#12287) 2026-02-03 12:57:23 +00:00