Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Lean プロジェクトの依存関係を 自動更新する
Search
井上亜星
January 17, 2026
Technology
73
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Lean プロジェクトの依存関係を 自動更新する
井上亜星
January 17, 2026
More Decks by 井上亜星
See All by 井上亜星
Lean は証明の正しさを確認するためだけのツールって思ってませんか?
inoueasei
1
160
Leanで本を執筆する
inoueasei
0
150
Lean言語は新世代の純粋関数型言語になれるか?
inoueasei
1
220
Other Decks in Technology
See All in Technology
サイバー捜査員研修(前半)
nomizone
1
2k
社内の7割が使うデータ基盤を、 データチーム2人で回すためにやったこと
koh_yoshi
4
1.3k
ホームラボ紹介
y_sera15
0
160
モダンフロントエンド 開発研修
recruitengineers
PRO
4
630
LanceDB入門
mocobeta
7
470
メルカリのグローバルアプリで挑んだ AlloyDB 運用と課題解決の実践記
hatappi
0
250
モバイルアプリ開発概論2026
recruitengineers
PRO
5
580
【AG-UI × A2UI × MCP Apps】Generative UIをやさしく解説する
nrinetcom
PRO
1
120
SmartHR Engineering Team Deck
smarthr
1
2.1k
【CEDEC2026】Creative Approaches to Localizing the Dialects and Unique Speech of Umamusume: Pretty Derby Characters in English
cygames
PRO
3
13k
PLATEAU で バーチャル花火大会
tatsuya1970
0
150
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
740
Featured
See All Featured
Scaling GitHub
holman
464
140k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
610
Marketing to machines
jonoalderson
1
5.7k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
260
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
390
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
1
370
Measuring & Analyzing Core Web Vitals
bluesmoon
9
950
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.7k
We Are The Robots
honzajavorek
0
300
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
200
HTML-Aware ERB: The Path to Reactive Rendering @ RubyCon 2026, Rimini, Italy
marcoroth
3
430
Transcript
Lean プロジェクトの依存関係を 自動更新する 井上亜星 Proxima Technology 2026-01-12
はじめに
自己紹介 はじめに • 趣味で Lean を勉強しています • Lean by Example
という日本語リファレン スを書いています • 2025 年 9 月に Lean の入門書をラムダノー トから出版しました 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 2 / 21
今回の目的 はじめに • そもそも Lean とは何かを紹介する • Lean プロジェクトの依存関係を自動更新する 方法について紹介する
• 開発の裏話を聞いていただく 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 3 / 21
そもそも Lean とは何か
Lean は、証明支援系 そもそも Lean とは何か • 定理証明支援系の一種 ‣ Rocq(旧 Coq)や
Isabelle などの仲間 ‣ 数学の定理やソフトウェアの仕様をコードで表現して、 証明できる • 間違いを犯しやすい人類に代わって、 ソフトウェアや証明の正しさをチェックしてくれる • ここでは詳しく説明しないが、 「依存型」という強力な型システムに基づいている 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 5 / 21
Lean は、プログラミング言語 そもそも Lean とは何か • Lean は汎用言語としても使えるように作られている • 公式サイトにも、programming
language だと書かれている 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 6 / 21
Lean では証明とプログラムは地続き そもそも Lean とは何か プログラムと証明は全然違うものという印象があるかもしれ ないが、 Lean では証明とプログラムは地続き Lean
でプログラムを書くと、証明が自然に現れる • 再帰関数を定義するとき、停止証明を要求される • 配列にインデックスアクセスするとき、 それが範囲内であることの証明を要求される • モナドを定義したら、 それがモナド則を満たしていることを証明できる 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 7 / 21
Lean では証明とプログラムは地続き そもそも Lean とは何か 逆に証明を書くときにプログラムが必要になることもある • 命題𝑃が成り立つかどうか判定するアルゴリズムがあるな ら、 それを実装すれば𝑃の証明に使えるようになる
• Lean での自動証明のカスタマイズは手続き的に行えるので まさにプログラミングそのもの 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 8 / 21
Lean では証明とプログラムは地続き そもそも Lean とは何か 同じ関数を証明にもプログラムにも使うことには問題もある たとえば文字列 String は •
証明に使うことを考えると文字 Char のリストとして定義し たい • プログラムに使うことを考えるともっと効率的な表現にし たい 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 9 / 21
Lean では証明とプログラムは地続き そもそも Lean とは何か Lean では等しいことの証明があればコンパイラ上で実装を置 き換えるように指示できて、ある程度この問題を解決できる ようになっている 井上亜星
Lean プロジェクトの依存関係を自動更新する 2026-01-12 10 / 21
lean-update について
Lean はまだ開発中 lean-update について Lean 4 はだいぶ安定してきたとはいえ、月に一度のペースで 新しいリリース(候補)が出る (mathlib はもっと頻繁に更新される)
• 開発元は最新版しか見ていないので、使う側も最新を使い たい • まとめて更新すると大変なので、ちまちま更新したい! 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 12 / 21
lean-update とは lean-update について Lean の依存関係を更新して、ビルドが通るか自動で確かめて くれる GitHub Action が欲しい!
• lean-update が誕生 • 元々は Oliver Butterley さんのプロジェクト • Oliver さんのやる気がなくなったので 私がメンテナになった 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 13 / 21
lean-update の仕組み lean-update について • Lean の最新版のリリースを取得して • lake update
コマンドを実行して • ビルド&テストを試してみて ‣ テストが失敗したら issue 投稿したり ‣ ビルドが通ったら PR を出したり を行うだけ。シンプル。 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 14 / 21
lean-update のありがたみ lean-update について 「最新版だとビルドが通らなくなる」という事象を素早く キャッチしてくれるので、 特に mathlib に依存しているようなプロジェクトだとありが たいかも
井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 15 / 21
開発の裏話
問題が山積み 開発の裏話 作ってみると、意外と難しいことが分かってきた • 要件が意外と複雑 • GitHub Action 自体の保守のしんどさ 井上亜星
Lean プロジェクトの依存関係を自動更新する 2026-01-12 17 / 21
要件が意外と複雑 開発の裏話 • Lean のバージョン取得のやり方 ‣ 各リリースごと ‣ rc は無視して
stable のみ ‣ nightly を追いかける • lake build 以外のチェック ‣ lake test も実行 ‣ lake lint も実行 • CLI ツールなら --version の出力も更新したい …etc 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 18 / 21
GitHub Action 自体の保守のしんどさ 開発の裏話 • action.yml ファイルにワークフローの処理を書いていく ‣ 状態管理も条件分岐も例外処理も全部 yml
• テストもやりにくい ‣「自分自身を呼び出す」ことによってテストしている でもこれが良い方法なのかわからない… ‣ IO 系の操作が多くてそもそもテストが書きづらい 要件の複雑さをカバーしきれない(私の能力不足もあり) 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 19 / 21
GitHub Action 自体の保守のしんどさ 開発の裏話 私の前に着手された Oliver さん、類似の Action を管理してい る
Anne さん、みなさん苦労されている様子 lean-update に限らず「自動更新 Action」が Lean 界隈で普及 しない原因はこの辺にありそう 良い方法があれば教えてください 井上亜星 Lean プロジェクトの依存関係を自動更新する 2026-01-12 20 / 21
ご清聴ありがとうござ いました