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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
井上亜星
January 17, 2026
Technology
1
26
Lean プロジェクトの依存関係を 自動更新する
井上亜星
January 17, 2026
Tweet
Share
More Decks by 井上亜星
See All by 井上亜星
Leanで本を執筆する
inoueasei
0
58
Lean言語は新世代の純粋関数型言語になれるか?
inoueasei
1
48
Other Decks in Technology
See All in Technology
Deno・Bunの標準機能やElysiaJSを使ったWebSocketサーバー実装 / ラーメン屋を貸し切ってLT会! IoTLT 2026新年会
you
PRO
0
290
今日から始めるAmazon Bedrock AgentCore
har1101
4
380
toCプロダクトにおけるAI機能開発のしくじりと学び / ai-product-failures-and-learnings
rince
6
5.5k
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1k
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
130
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
680
Context Engineeringの取り組み
nutslove
0
270
生成AI時代にこそ求められるSRE / SRE for Gen AI era
ymotongpoo
5
2.5k
システムのアラート調査をサポートするAI Agentの紹介/Introduction to an AI Agent for System Alert Investigation
taddy_919
2
1.7k
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
180
Bill One急成長の舞台裏 開発組織が直面した失敗と教訓
sansantech
PRO
1
190
変化するコーディングエージェントとの現実的な付き合い方 〜Cursor安定択説と、ツールに依存しない「資産」〜
empitsu
4
1.3k
Featured
See All Featured
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
160
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
1
48
Designing for Performance
lara
610
70k
Building the Perfect Custom Keyboard
takai
2
680
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
Git: the NoSQL Database
bkeepers
PRO
432
66k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
71k
BBQ
matthewcrist
89
10k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
110
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
9.8k
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
ご清聴ありがとうござ いました