Skip to content

refactor: remove import-only aggregator files#839

Open
SnO2WMaN wants to merge 2 commits into
masterfrom
remove-import-only-aggregator-files
Open

refactor: remove import-only aggregator files#839
SnO2WMaN wants to merge 2 commits into
masterfrom
remove-import-only-aggregator-files

Conversation

@SnO2WMaN

@SnO2WMaN SnO2WMaN commented Jul 8, 2026

Copy link
Copy Markdown
Member

Summary

  • module 宣言と public import だけで構成され,それ自体は何も定義していない集約専用ファイルを削除しました(例: Foundation/FirstOrder/SetTheory/Basic.lean).
    • Foundation/FirstOrder/Basic.lean
    • Foundation/FirstOrder/Completeness.lean
    • Foundation/FirstOrder/Bootstrapping/Syntax.lean
    • Foundation/FirstOrder/SetTheory/Basic.lean
    • Foundation/FirstOrder/Arithmetic/HFS.lean
    • Foundation/FirstOrder/Arithmetic/Definability.lean
    • Foundation/FirstOrder/Arithmetic/Exponential.lean
    • Foundation/FirstOrder/Arithmetic/Basic.lean
  • これらを import していた各ファイルは,集約ファイルが束ねていた個々のサブモジュールへの import 列に展開しました.
  • lake exe mk_all --moduleFoundation.lean を再生成しました.
  • lake shake --keep-public --fix を今回変更したファイルに対して実行し,展開後に不要になった import を削除しました.--keep-public により,必要な public import(例: cl_prover タクティクを提供する Foundation.Meta.ClProverFinsetRepr インスタンスを提供する Mathlib.Data.Finset.Sort 等)が誤って private import に格下げされ,下流の再エクスポートが壊れることを防いでいます.

Test plan

  • lake build が 1656/1656 ジョブ成功で通ることを確認(残存する警告は今回の変更と無関係な既存のもの)

SnO2WMaN and others added 2 commits July 8, 2026 19:33
Delete Lean modules that only re-export their submodules via
`public import` (Foundation/FirstOrder/Basic.lean,
Foundation/FirstOrder/Completeness.lean,
Foundation/FirstOrder/Bootstrapping/Syntax.lean,
Foundation/FirstOrder/SetTheory/Basic.lean,
Foundation/FirstOrder/Arithmetic/{HFS,Definability,Exponential,Basic}.lean)
and inline their import lists into the files that imported them.
Foundation.lean is regenerated via `lake exe mk_all --module`.
Run `lake shake --keep-public --fix` over the files touched by the
previous commit to drop imports that turned out to be unused after
inlining the deleted aggregator files' import lists. `--keep-public`
avoids downgrading still-needed `public import`s to private ones,
which would silently break downstream re-exports (e.g. `cl_prover`
via Foundation.Meta.ClProver, and Finset's `Repr` instance).

Co-Authored-By: Claude <noreply@anthropic.com>
@iehality

iehality commented Jul 9, 2026

Copy link
Copy Markdown
Member

集約専用ファイルは定理・定義をパッケージ化するのに便利だから残した方がいいかもしれない.

@SnO2WMaN

SnO2WMaN commented Jul 9, 2026

Copy link
Copy Markdown
Member Author

lake shakeである程度importを削れるはずなのだが上手く言ってないように見える.後で修正する. 8個importは全部独立だということがわかった.個人的には集約ファイルはルートだけのほうが良いような気もするが,気持ち的な問題かもしれない.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants