Park, Geon (re-st)

Lean Machine-Checked Mathematics and Verified Programming, Past and Future (Leonardo de Moura)

[seminar] 3 min read

Leonardo de Moura, AWS

Z3์— ๋ถˆํ‰์ด ๋งŽ๋‹ค - whole-program ํ•  ๋•Œ, minor code edit์ด solver trace๋ฅผ ๊นจ๋œจ๋ฆฐ๋‹ค

Lean์€ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ๋“ค๋ผ๋ฆฌ๋„ ํ˜‘์—…์ด ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋์œผ๋ฉฐ,

extensibleํ•˜๊ณ , own system์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

types, systems = first-class objects

  • Lean์—์„œ๋Š” ํƒ€์ž…๊ณผ ์‹œ์Šคํ…œ(์˜ˆ: ๋ชจ๋‚˜๋“œ, ๋ฆฌ๋ผ์ดํŠธ ๊ทœ์น™ ๋“ฑ)์„ ํ”„๋กœ๊ทธ๋žจ ๊ฐ’์ฒ˜๋Ÿผ ๋‹ค๋ฃฌ๋‹ค. ์ฆ‰, ํ•จ์ˆ˜์˜ ์ธ์ž๋กœ ๋„˜๊ธฐ๊ฑฐ๋‚˜ ๋ฆฌ์ŠคํŠธ์— ๋‹ด๊ณ , ๋Ÿฐํƒ€์ž„์— ์ƒ์„ฑยท์กฐ์ž‘ํ•  ์ˆ˜ ์žˆ์–ด ๋ฉ”ํƒ€ํ”„๋กœ๊ทธ๋žจ ์ž‘์„ฑ๊ณผ ๋„๋ฉ”์ธ ํŠน์ • ํ™•์žฅ์ด ์‰ฌ์›Œ์ง„๋‹ค.

dependent type theory

  • Lean์€ ์ข…์† ํƒ€์ž… ์ด๋ก (dependent type theory)์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๋ฉฐ, X๋Š” โ€œCIC(Calculus of Inductive Constructions)โ€ ๊ฐ™์€ ๊ตฌ์ฒด์  ๋ณ€ํ˜•์„ ๊ฐ€๋ฆฌํ‚จ๋‹ค. ์ข…์† ํƒ€์ž… ๋•๋ถ„์— ํ”„๋กœ๊ทธ๋žจ๊ณผ ์ฆ๋ช…์ด ๊ฐ™์€ ์–ธ์–ด์—์„œ ์ž‘์„ฑยท๊ฒ€์ฆ๋˜๋ฉฐ, ๋ณต์žกํ•œ ์‚ฌ์ „ ์กฐ๊ฑดยทํ›„์กฐ๊ฑด์„ ํƒ€์ž… ์ˆ˜์ค€์—์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ˆ˜ํ•™์ž๋“ค์ด constructive class๋“ ์ง€ ๋ญ๋“ ์ง€, Lean๊ฐœ๋ฐœ์ž๋“ค๋„ ๋ชจ๋ฅด๋Š” ๊ฒƒ๋“ค ๋•Œ๋ฌธ์— Lean์„ ์ข‹์•„ํ•˜๊ณ  ์žˆ๋‹ค.

A Lean proof of Fermatโ€™s Last Theorem

https://imperialcollegelondon.github.io/FLT/blueprint.pdf -> https://pitmonticone.github.io/FLT3/blueprint/dep_graph_document.html (n=3) -> https://pitmonticone.github.io/FLT3/docs/FLT3/FLT3.html#Solution'.multiplicity_lambda_c_finite (specific lemma)

Lean in software verification

Cedar - https://aws.amazon.com/ko/blogs/opensource/lean-into-verified-software-development/ Cedar๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ถŒํ•œ์„ ์ •์˜ํ•˜๊ณ  ์ ์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ ๋ถ€์—ฌ ์ •์ฑ…์„ ์ž‘์„ฑํ•˜๋Š”ย ์˜คํ”ˆ ์†Œ์Šค ์–ธ์–ดย ์ž…๋‹ˆ๋‹ค .

“Maintaining the proofs” ์—์„œ Lean์ด ๋งค์šฐ ์ข‹์Œ.

SampCert

Geometrics๊ฐ€ CompCert์— ๊ธฐ์—ฌํ–ˆ๋“ฏ์ด. Mathlib ๋•๋ถ„์—, Lean์œผ๋กœ SampCert๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์—ˆ๋‹ค - ํ‘ธ๋ฆฌ์— ๋ถ„์„, ์ •์ˆ˜๋ก , ์œ„์ƒ์ˆ˜ํ•™

Lean is extensible - can build own proofs

https://techcommunity.microsoft.com/blog/microsoft-security-blog/microsofts-quantum-resistant-cryptography-is-here/4238780 https://www.microsoft.com/en-us/research/publication/aeneas-rust-verification-by-functional-translation/

https://github.com/phlippe/Lean_hammer

  • https://www.themoonlight.io/ko/review/premise-selection-for-a-lean-hammer Lean์—์„œ โ€œhammerโ€๋Š” ๋ณต์žกํ•œ ์ฆ๋ช… ๋ชฉํ‘œ๋ฅผ ์ž๋™ํ™”๋œ ์™ธ๋ถ€ ์ •๋ฆฌ ์ฆ๋ช…๊ธฐ(์˜ˆ: Z3, Vampire)๋‚˜ SMT ์†”๋ฒ„์— ๋„˜๊ฒจ ๋Œ€์‹  ์ฆ๋ช…ํ•˜๋„๋ก ํ•œ ๋’ค, ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค์‹œ Lean ๋‚ด๋ถ€์˜ ์ฆ๋ช… ์ฒด๊ณ„๋กœ ๋Œ์–ด์˜ค๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.
  1. ์—ญํ• 

    • ์‚ฌ์šฉ์ž๊ฐ€ ์ˆ˜๋™์œผ๋กœ ์ž‘์„ฑํ•˜๊ธฐ ์–ด๋ ค์šด ๋ณต์žกํ•œ ์ฆ๋ช… ์˜๋ฌด(goal)๋ฅผ ์™ธ๋ถ€ ATP(Automated Theorem Prover)์— ๋งก๊น๋‹ˆ๋‹ค.

    • ATP๊ฐ€ ์ฐพ์€ ์ฆ๋ช… ์Šคํ…์„ Lean์˜ ์ •๋ฆฌ๋‚˜ ์ „์ˆ (tactic) ํ˜•ํƒœ๋กœ ์žฌ๊ตฌ์„ฑํ•˜์—ฌ, ์‚ฌ์šฉ์ž๋Š” ๋‹จ์ˆœํžˆ ํ•œ ์ค„์˜ ๋ช…๋ น์œผ๋กœ ๊ฐ•๋ ฅํ•œ ์ž๋™ ์ฆ๋ช… ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 1(https://github.com/phlippe/Lean_hammer)

  2. ์ด๋ฆ„ ์œ ๋ž˜

    • Isabelle/HOL์—์„œ ์ œ๊ณตํ•˜๋Š” โ€œSledgehammerโ€ ์ „์ˆ ์—์„œ ์˜ํ–ฅ๋ฐ›์•˜์Šต๋‹ˆ๋‹ค. โ€œSledgehammerโ€๊ฐ€ ๋ชป์„ ๋ฐ•๋“ฏ, ์–ด๋ ต๊ฒŒ ๋А๊ปด์ง€๋Š” ์ฆ๋ช… ๋ชฉํ‘œ๋ฅผ ๊ฐ•๋ ฅํ•˜๊ฒŒ ํƒ€๊ฒฉ(ํ•ด๊ฒฐ)ํ•ด ์ค€๋‹ค๋Š” ์˜๋ฏธ๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. 5(https://www.themoonlight.io/ko/review/premise-selection-for-a-lean-hammer)
  3. ์žฅ์ 

    • ์ฆ๋ช… ์‹œ๊ฐ„์„ ํฌ๊ฒŒ ๋‹จ์ถ•
    • ๋ณต์žกํ•œ ๋…ผ๋ฆฌ ๊ตฌ์กฐ๋„ ์™ธ๋ถ€ ์†”๋ฒ„์˜ ํƒ์ƒ‰ ๋Šฅ๋ ฅ์œผ๋กœ ์ฒ˜๋ฆฌ
    • Lean ์•ˆํŒŽ์˜ ๋„๊ตฌ๋ฅผ ๊ฒฐํ•ฉํ•ด ์ฆ๋ช… ์ž๋™ํ™” ํ™˜๊ฒฝ์„ ํ™•์žฅ

์ด์ฒ˜๋Ÿผ Lean hammer๋Š” โ€œ๋ฌด๊ฑฐ์šด ๋ง์น˜โ€์ฒ˜๋Ÿผ ๊ฐ•๋ ฅํ•œ ์ž๋™ ์ฆ๋ช… ์ง€์›์„ ์ œ๊ณตํ•˜์—ฌ, ์ฆ๋ช… ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ด๊ณ  ์‚ฌ์šฉ์ž ๋ถ€๋‹ด์„ ์ค„์—ฌ ์ค๋‹ˆ๋‹ค.

๐ŸŒ Sources

  1. github.com - Development repository of a hammer for Lean.

  2. github.com - Lean_hammer/leanhammer.lean at master

  3. leanprover-community.github.io - Lean projects

  4. leanprover-community.github.io - Duper

  5. themoonlight.io - [๋…ผ๋ฌธ ๋ฆฌ๋ทฐ] Premise Selection for a Lean Hammer

  6. openreview.net - LeanAgent: Lifelong Learning for Formal Theorem Proving

grind

Grind๋Š” SMT ์†”๋ฒ„ ๊ตฌ์กฐ๋ฅผ ๋ณธ๋œฌ ์ž๋™ํ™” ํ”„๋ ˆ์ž„์›Œํฌ๋‹ค. ๋‹ค์Œ ๋„ค ๋‹จ๊ณ„๋กœ ๋™์ž‘ํ•œ๋‹ค.

  1. ์ œ์•ฝ ์ˆ˜์ง‘ ๋ฐ ๊ธฐ์žฌ

    • ์ž…๋ ฅ ๋ฌธ์ œ์—์„œ ๋‚˜ํƒ€๋‚˜๋Š” ๋“ฑ์‹ยท๋ถ€๋“ฑ์‹์„ ํƒ์ƒ‰ํ•ด โ€œ๊ฒ€์‚ฌํŒ(board)โ€์— ๊ธฐ๋ก

    • ๊ฐ ์ œ์•ฝ์„ ๋ชฉ๋กํ™”ํ•ด ์ „์ฒด ์ปจํ…์ŠคํŠธ๋ฅผ ๊ตฌ์„ฑ

  2. ๋™์น˜๋ฅ˜ ๋ณ‘ํ•ฉ(Equivalence Merging)

    • ๊ธฐ๋ก๋œ ๋“ฑ์‹๋“ค์„ ํ†ตํ•ด ๋ณ€์ˆ˜๋‚˜ ํ‘œํ˜„์‹์„ ๋™์ผ ํด๋ž˜์Šค์— ๋ฌถ์Œ

    • Congruence closure ๊ธฐ๋ฒ•์œผ๋กœ ์œ ๋„ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋™์น˜ ๊ด€๊ณ„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ†ตํ•ฉ

  3. ํ˜‘๋ ฅ ์—”์ง„(Cooperating Engines)

    • Case Analysis Engine: ๋ถ„๊ธฐ๋ณ„ ๊ฐ€๋Šฅํ•œ ์ผ€์ด์Šค(์˜ˆ: x>0, xโ‰ค0)๋ฅผ ๋‚˜๋ˆ  ๊ฐ๊ฐ ๋…๋ฆฝ ํ•ด๊ฒฐ

    • E-Analysis Engine: ๋“ฑ์‹ ๋ฐ ํ•จ์ˆ˜ ๊ฒฐํ•ฉ ํŠน์„ฑ์„ ์‚ฌ์šฉํ•ด ์ถ”๊ฐ€ ๋™์น˜ยท๋ถ€๋“ฑ์‹ ์œ ๋„

    • Theory Solvers: ์„ ํ˜•์‚ฐ์ˆ , ๋ถ€๋™์†Œ์ˆ˜์ , ๋ฐฐ์—ด ๋“ฑ ๊ฐ ์ด๋ก  ์ „์šฉ ํ•˜์œ„ ์†”๋ฒ„์™€ ์—ฐ๋™

  4. ์ถฉ๋Œ ํƒ์ง€ ๋ฐ ํ•ด์†Œ(Conflict Resolution)

    • ์„œ๋กœ ๋ชจ์ˆœ๋˜๋Š” ์ œ์•ฝ์ด ๋ฐœ๊ฒฌ๋˜๋ฉด ๊ฐ„๋‹จํ•œ ํ•™์Šต(clause learning)์œผ๋กœ ์›์ธ ๊ธฐ๋ก

    • ๋ชจ์ˆœ์„ ์ผ์œผํ‚ค๋Š” ๊ฒฝ๋กœ๋ฅผ ์ฐจ๋‹จํ•ด ๋” ๊นŠ์€ ํƒ์ƒ‰์œผ๋กœ ์œ ๋„

์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•˜๋ฉฐ, ๋ชจ๋“  ์ œ์•ฝ์ด ๋งŒ์กฑ๋˜๊ฑฐ๋‚˜ ๋ชจ์ˆœ์ด ์ฆ๋ช…๋  ๋•Œ๊นŒ์ง€ ์ž๋™์œผ๋กœ ์ฆ๋ช…ยทํ•ด๊ฒฐ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. SMT ์†”๋ฒ„์˜ ํ•ต์‹ฌ ์š”์†Œ์ธ ์ œ์•ฝ ์ „ํŒŒ(constraint propagation), ๋ถ„๊ธฐ(case splitting), ๋™์น˜ ์ถ”๋ก (equivalence reasoning)์„ ์ฒด๊ณ„์ ์œผ๋กœ ๊ฒฐํ•ฉํ•จ์œผ๋กœ์จ ๋งค์šฐ ํ™•์žฅ ๊ฐ€๋Šฅํ•˜๊ณ  ํšจ์œจ์ ์ธ ์ž๋™ํ™” ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•œ๋‹ค.

๐ŸŒ Sources

  1. arxiv.org - SMT-Solving Induction Proofs of Inequalities

  2. arxiv.org - SMT(LIA) Sampling with High Diversity

  3. researchgate.net - Efficient E-Matching for SMT Solvers

  4. sat-smt-ar-school.gitlab.io - SAT/SMT/AR Summer School 2024

Verified AI(-generated proof)

AlphaProof, AlphaGeometry, ChatGPT ๊ทธ๋ฆฌ๊ณ  ์‹ ๊ฒฝ-๊ธฐํ˜ธ์  AI์˜ ๋ฏธ๋ž˜ 2024-07

์ž์—ฐ์–ด๋ฅผ formal language๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด์„œ lean์œผ๋กœ ๊ฒ€์ฆ

๋ถ„๋ฅ˜:PLDI 2025 ยท Lean

#Lecture-Summary 

<< Previous Post

|

Next Post >>

โ† ๋’ค๋กœ