๐Ÿ“บ ์˜์ƒ ์š”์•ฝ ์•„์นด์ด๋ธŒ
โ† ๋ชฉ๋ก

Your Code Has Bugs. Lean4 Has Proofs: Formal Verification for Engineers โ€” Varun Pant, AWS

AI Engineer ยท 2026-08-29 03:00 ยท 10:07

ํ•œ ์ค„ ํ•ต์‹ฌ

์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ์ถœ๋ ฅ์€ ํ…Œ์ŠคํŠธยท๋ฆฌ๋ทฐ๋งŒ์œผ๋กœ๋Š” ์ „ ์ž…๋ ฅ์— ๋Œ€ํ•œ ์ •๋‹น์„ฑ์„ ๋ณด์žฅํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, Lean ๊ฐ™์€ ํ˜•์‹ ๊ฒ€์ฆ ๋„๊ตฌ๋กœ ์‚ฌ์–‘์€ ์‚ฌ๋žŒ์ด ์ •์˜ํ•˜๊ณ  ์ฆ๋ช…์€ ๊ธฐ๊ณ„๊ฐ€ ๋งก๋Š” ๋ฐฉ์‹์ด ๊ฐ€์žฅ ๊ฐ•ํ•œ ์•ˆ์ „์žฅ์น˜๊ฐ€ ๋œ๋‹ค.

์‹œ๊ฐ„๋ณ„ ์š”์•ฝ

  1. 0:00
    ์ผ๋ฐ˜์ ์ธ ์ ๊ฒ€์œผ๋กœ๋Š” ์—์ด์ „ํŠธ ๊ฒฐ๊ณผ๋ฅผ ๋‹ค ๊ฒ€์ฆํ•  ์ˆ˜ ์—†๋Š” ์ด์œ  LM ์‹ฌ์‚ฌ, ํ…Œ์ŠคํŠธ, ์ธ๊ฐ„ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋Š” ๋ชจ๋‘ ์ผ๋ถ€ ์ž…๋ ฅ๋งŒ ํ™•์ธํ•  ๋ฟ ์ „ ์ž…๋ ฅ์— ๋Œ€ํ•ด ์ฝ”๋“œ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๋‹ค๊ณ  ๋งํ•ด์ฃผ์ง€ ๋ชปํ•œ๋‹ค. ํ˜•์‹ ๊ฒ€์ฆ์€ ์ฝ”๋“œ๊ฐ€ ๋ฌด์—‡์„ ๋งŒ์กฑํ•ด์•ผ ํ•˜๋Š”์ง€ ์‚ฌ์–‘์„ ์ •ํ•˜๊ณ , ๊ทธ ์‚ฌ์–‘์„ ๋งŒ์กฑํ•œ๋‹ค๋Š” ์ˆ˜ํ•™์  ์ฆ๋ช…์„ ํ†ตํ•ด ๋ชจ๋“  ์ž…๋ ฅ์— ๋Œ€ํ•œ ์ •๋‹น์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค.
  2. 1:06
    ์‚ฌ์–‘์€ ์‚ฌ๋žŒ์ด, ์ฆ๋ช…์€ ๊ธฐ๊ณ„๊ฐ€ ๋งก๋Š” ๊ตฌ์กฐ ์‚ฌ์–‘์„ ๋จผ์ € ์ •์˜ํ•œ ๋’ค ์ธ๊ฐ„์ด ๊ฒ€ํ† ํ•˜๊ฑฐ๋‚˜ ์ผ๋ถ€ ์ž…๋ ฅ์œผ๋กœ ์‹œํ—˜ํ•ด ๊ฒ€์ฆํ•˜๊ณ , ๊ทธ ๋‹ค์Œ AI coding agent๊ฐ€ ๊ตฌํ˜„์„ ์ž‘์„ฑํ•˜๋ฉด formal verification tool์ด ๊ตฌํ˜„์ด ์‚ฌ์–‘๊ณผ ์ผ์น˜ํ•จ์„ ์ฆ๋ช…ํ•œ๋‹ค. ์‚ฌ์–‘์€ ์ƒ์œ„์— ์žˆ๋Š” ์‚ด์•„ ์žˆ๋Š” ์‚ฐ์ถœ๋ฌผ์ด๊ณ , ๋‚˜๋จธ์ง€๋Š” ๊ทธ ์•„๋ž˜์—์„œ ๋”ฐ๋ผ์˜ค๋Š” ๊ตฌ์กฐ๋‹ค.
  3. 2:00
    ์ฝ”๋“œ์™€ ์ฆ๋ช…์„ ํ•˜๋‚˜์˜ ์–ธ์–ด๋กœ ๋‹ค๋ฃจ๋Š” Lean Lean์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ด์ž proof assistant๋กœ, ์ •์˜์™€ ์ฆ๋ช…์„ ๊ฐ™์€ ์–ธ์–ด๋กœ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์–ด ๋ฒˆ์—ญ์ธต์ด ์—†๋‹ค. ์ž‘์€ trusted kernel์„ ๊ฐ–๊ณ  ์žˆ์–ด ์ฆ๋ช…์€ ๋‚ด๋ณด๋‚ธ ๋’ค ๋…๋ฆฝ์ ์œผ๋กœ ๋‹ค์‹œ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ฝ”๋“œ์™€ theorem์ด ๊ฐ™์€ ํŒŒ์ผ์— ํ•จ๊ป˜ ์กด์žฌํ•œ๋‹ค.
  4. 3:01
    ์ „์ˆ , ์ •๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ์ฒด์Šค ๋น„์œ  Lean์—์„œ๋Š” tactics๋กœ ์ฆ๋ช… ๋‹จ๊ณ„๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  kernel์ด ์ตœ์ข… ๊ฒ€์‚ฌ๋ฅผ ๋งก๋Š”๋‹ค. ์ฆ๋ช… ๊ณผ์ •์€ ์ฒด์Šค์ฒ˜๋Ÿผ ๋ชฉํ‘œ๋ฅผ ํ–ฅํ•ด ์—ฌ๋Ÿฌ ์ˆ˜๋ฅผ ๋‘๋ฉฐ ํƒ์ƒ‰ํ•˜๊ณ , ๋ง‰ํžˆ๋ฉด ๋˜๋Œ์•„๊ฐ€ ๋‹ค๋ฅธ ๊ฐ€์ง€๋ฅผ ์‹œ๋„ํ•˜๋Š” ํŠธ๋ฆฌ ํƒ์ƒ‰์— ๊ฐ€๊น๋‹ค.
  5. 3:58
    ๋…๋ฆฝ์ ์œผ๋กœ ๋‹ค์‹œ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์ž‘์€ ์ปค๋„ ์ž˜๋ชป๋œ ์ฆ๋ช…์€ kernel์—์„œ ์ฆ‰์‹œ ๊ฑฐ์ ˆ๋˜๋ฏ€๋กœ, ์‹ ๋ขฐํ•ด์•ผ ํ•  ๋ฒ”์œ„๋Š” ๋งค์šฐ ์ž‘์€ ํ•ต์‹ฌ๋ถ€์— ํ•œ์ •๋œ๋‹ค. kernel์€ C++, Rust, Lean ๋“ฑ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ตฌํ˜„์„ ๋‘˜ ์ˆ˜ ์žˆ๊ณ , ์ด๋ฅผ ์ง์ ‘ ๋‹ค์‹œ ์ž‘์„ฑํ•ด ๊ฒ€์ฆํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  6. 4:52
    zlib๋ฅผ Lean์œผ๋กœ ์˜ฎ๊ธฐ๊ณ  32,000์ค„์˜ ์ฆ๋ช…์„ ๋งŒ๋“  ์‚ฌ๋ก€ zlib๋ฅผ Lean์œผ๋กœ ์˜ฎ๊ธด ์‚ฌ๋ก€์—์„œ๋Š” ์ž์—ฐ์–ด ์‚ฌ์–‘์„ formal spec์œผ๋กœ ๋งŒ๋“ค๊ณ , AI๊ฐ€ Lean ์ฝ”๋“œ์™€ ๋ณด์กฐ lemma๋ฅผ ์ƒ์„ฑํ•œ ๋’ค tactics๋กœ ๊ฐ subgoal์„ ํ’€์–ด ์ตœ์ข… theorem์„ ์™„์„ฑํ–ˆ๋‹ค. ์ด ์ž‘์—…์€ 32,000 lines of proof ๊ทœ๋ชจ์˜€๊ณ , ๋งˆ์ง€๋ง‰ ๊ฒ€์‚ฌ๋Š” ์ž‘์€ ๋…๋ฆฝ kernel์ด ์ˆ˜ํ–‰ํ–ˆ๋‹ค.
  7. 6:44
    Cedar: Lean ์˜๋ฏธ๋ก , Rust ์šด์˜ ์ฝ”๋“œ Cedar๋Š” ์ •์ฑ… ์–ธ์–ด์˜ ์‚ฌ์–‘์„ Lean์œผ๋กœ ๋‘๊ณ  ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋Š” Rust๋กœ ์šด์˜ํ•˜๋ฉฐ, ๋‘ ๊ตฌํ˜„์ด ๊ฐ™์€ ์ž…๋ ฅ์—์„œ ๊ฐ™์€ ์ถœ๋ ฅ์„ ๋‚ด๋Š”์ง€ differential random testing์œผ๋กœ ๊ฒ€์ฆํ•œ๋‹ค. nightly์— ์•ฝ 100 million ํ…Œ์ŠคํŠธ๋ฅผ ๋Œ๋ฆฌ๊ณ , ๋งŒ์กฑํ•  ๋•Œ๊นŒ์ง€ ๋ฒ„์ „์„ ์ถœ์‹œํ•˜์ง€ ์•Š๋Š”๋‹ค.
  8. 7:40
    ์†”๋ฒ„, ์ „์ œ์กฐ๊ฑด, ๊ทธ๋ฆฌ๊ณ  ๋Ÿฐํƒ€์ž„์—์„œ ์ง€์›Œ์ง€๋Š” ์ฝ”๋“œ solver๋Š” ์‹์„ ๋„ฃ์œผ๋ฉด satisfiable/unsatisfiable ๊ฐ™์€ ๊ฒฐ๊ณผ๋ฅผ ๋Œ๋ ค์ฃผ๋Š” ๊ณ„์‚ฐ๊ธฐ์ฒ˜๋Ÿผ ์ž‘๋™ํ•˜๋ฉฐ, Verus๋Š” Z3๋ฅผ ํ™œ์šฉํ•œ๋‹ค. requires์™€ ensure๋กœ ํ‘œํ˜„ํ•˜๋Š” precondition๊ณผ postcondition์€ ์ •์  ๊ฒ€์ฆ๋˜์ง€๋งŒ ๋Ÿฐํƒ€์ž„์—๋Š” ์‚ฌ๋ผ์ ธ ์ผ์ข…์˜ ghost code์ฒ˜๋Ÿผ ์ทจ๊ธ‰๋œ๋‹ค.
  9. 8:37
    ์–ด๋–ค ์–ธ์–ด๋“  ๊ฐ™์€ ํ•ต์‹ฌ์œผ๋กœ ๋Œ์–ด์˜ค๋Š” ๋ฐฉ๋ฒ• Strata๋Š” ์–ด๋–ค ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋“  dialect๋กœ ๋ฐ›์•„ high-level IR์„ Strata core๋ผ๋Š” low-level IR๋กœ ๋‚ด๋ฆฌ๋Š” Lean ๊ธฐ๋ฐ˜ ๋„๊ตฌ๋‹ค. ๋ชจ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ™์€ ํ•ต์‹ฌ ์–ธ์–ด๋กœ ๋งž์ถ˜ ๋’ค Lean proof, SMT solver, model checker ๊ฐ™์€ ์—ฌ๋Ÿฌ ์—”์ง„์— ๋ถ„๋ฐฐํ•ด ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ๋‹ค.

์‹ค๋ฌด ์ธ์‚ฌ์ดํŠธ

  • ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ์‚ฐ์ถœ๋ฌผ์€ ํ…Œ์ŠคํŠธ๋ณด๋‹ค ์‚ฌ์–‘ ํ’ˆ์งˆ์ด ๋” ์ค‘์š”ํ•˜๋ฏ€๋กœ, ๋จผ์ € ์‚ฌ๋žŒ์ด ๊ฒ€ํ†  ๊ฐ€๋Šฅํ•œ ๋ช…์„ธ๋ฅผ ๋งŒ๋“œ๋Š” ํ๋ฆ„์„ ํ‘œ์ค€ ํ”„๋กœ์„ธ์Šค๋กœ ๋‘๋Š” ๊ฒƒ์ด ํšจ๊ณผ์ ์ด๋‹ค.
  • ์ „์‚ฌ์  ๋„์ž…๋ณด๋‹ค ์˜ค๋ฅ˜ ๋น„์šฉ์ด ํฐ ํ•ต์‹ฌ ์ฝ”๋“œ๋ถ€ํ„ฐ Lean, solver, differential testing์„ ๋ถ™์—ฌ ๊ฒ€์ฆ ๊ฐ•๋„๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ๋†’์ด๋Š” ํŽธ์ด ํ˜„์‹ค์ ์ด๋‹ค.
  • ํ˜•์‹ ๊ฒ€์ฆ์„ ๋„์ž…ํ•  ๋•Œ๋Š” ๋Ÿฐํƒ€์ž„ ์„ฑ๋Šฅ๋ณด๋‹ค ์‚ฌ์ „ ์กฐ๊ฑดยท์‚ฌํ›„ ์กฐ๊ฑด, ๋ณด์กฐ ์ •๋ฆฌ, kernel ์‹ ๋ขฐ ๊ฒฝ๊ณ„๋ฅผ ๋จผ์ € ์„ค๊ณ„ํ•ด์•ผ ์šด์˜ ์ ์šฉ์ด ์‰ฌ์›Œ์ง„๋‹ค.