LLM2SMT: Building an SMT Solver with Zero Human-Written Code

이 논문은 인간이 작성한 코드가 전혀 없이 LLM 코딩 에이전트가 QF_UF 문제를 해결하는 완전한 SMT 솔버를 구축하고 벤치마크에서 경쟁력 있는 성능을 보였음을 보여주는 사례 연구입니다.

Mikoláš Janota, Mirek Olšák

게시일 Tue, 10 Ma
📖 4 분 읽기☕ 가벼운 읽기

Each language version is independently generated for its own context, not a direct translation.

🤖 "코딩하는 AI 가 스스로 '논리 검사관'을 만들었다?"

(LLM2SMT: 인간이 한 줄의 코드도 쓰지 않은 SMT 솔버 개발 사례)

이 논문은 **"인간이 코딩을 전혀 하지 않았는데, AI 가 스스로 복잡한 논리 문제를 해결하는 소프트웨어를 만들 수 있을까?"**라는 흥미로운 실험에 대한 이야기입니다.

마치 인간이 요리사에게 "요리해 줘"라고만 말하고, 레시피도 주지 않은 채 주방에 내버려 둔 뒤, 그 요리사가 스스로 요리를 만들어내는 상황이라고 상상해 보세요. 이 논문은 바로 그 요리사가 '수학 논리'라는 요리를 완벽하게 해낸 사례입니다.


1. 이 실험은 무엇을 했나요? (배경)

일반적으로 AI 는 글을 쓰거나 그림을 그리는 데 능합니다. 하지만 이 연구팀은 AI 가 스스로 '논리 추론 도구 (SMT 솔버)'를 만들 수 있는지 궁금해했습니다.

  • 목표: 인간이 코드를 한 줄도 쓰지 않고, AI 가 스스로 QF_UF(논리식과 함수에 대한 논리) 문제를 해결하는 프로그램을 만드는 것.
  • 주인공: 'Claude Code'라는 AI 에이전트.
  • 결과: AI 는 스스로 코드를 짜고, 버그를 고치고, 심지어 증명까지 하는 완전한 프로그램을 완성했습니다.

2. 어떻게 만들었나요? (과정과 비유)

AI 는 처음부터 완벽하지 않았습니다. 마치 새로 입사한 천재 신입 사원처럼, 큰 그림은 알지만 세부적인 실수를 반복했습니다. 연구팀은 다음과 같은 '코칭'을 해줬습니다.

① "너는 코딩만 하지 말고, '감시관'도 만들어줘"

AI 는 처음에 논리 연결詞 (AND, OR 등) 를 제대로 처리하지 못했습니다. 연구팀은 "논리 규칙을 잘 지켜야 해"라고 가르쳤고, AI 는 스스로 수정했습니다.

  • 비유: 요리사가 소금과 설탕을 헷갈려서 요리를 망쳤을 때, "소금은 짠 거고 설탕은 단 거야"라고 알려주니 바로 고친 셈입니다.

② "자꾸 멈추는 게 아니라, '타임아웃'을 걸어줘"

AI 가 만든 프로그램은 가끔 무한 루프에 빠져 멈추지 않는 경우가 있었습니다. 연구팀은 AI 에게 "만약 180 초 안에 안 끝나면 강제로 멈춰!"라는 규칙을 세웠습니다.

  • 비유: 요리사가 불을 끄지 않고 계속 끓이다가 냄비가 타버리는 것을 막기 위해, "30 분 지나면 자동으로 가스 밸브를 잠가"라고 설정한 것과 같습니다.

③ "복잡한 문제를 '미리 정리'해줘 (프리프로세싱)"

특히 어려운 문제 (다이아몬드 문제) 가 있었습니다. AI 는 이걸 해결하기 위해 스스로 새로운 전략을 생각해냈습니다.

  • 상황: "A=B 이거나 B=C 이다"라는 식의 복잡한 조건이 있을 때, AI 는 "아, 그럼 A=C 라는 공통점을 미리 찾아서 문제 자체를 단순화하자!"라고 생각했습니다.
  • 결과: 이 전략 덕분에 AI 는 인간이 만든 기존 프로그램들보다 훨씬 빠르게 문제를 해결했습니다.

3. 가장 어려운 부분: "증명서" 만들기

AI 가 문제를 풀고 "해결했다!"라고 말했을 때, 우리는 그 답이 맞는지 어떻게 알 수 있을까요? 연구팀은 AI 에게 **Lean(린)**이라는 언어로 '증명서'를 작성하게 했습니다.

  • 도전: AI 는 논리 문제를 푸는 것은 잘했지만, 그 과정을 수학적으로 증명하는 것은 매우 어려워했습니다. 마치 수학 문제를 풀기는 잘하지만, 풀이 과정을 시험지 답안지에 깔끔하게 적어내는 데 서툰 학생과 같았습니다.
  • 해결: 연구팀이 "이런 식으로 증명해"라고 구체적인 예시를 보여줬더니, AI 는 그 패턴을 학습해서 결국 증명서를 만들어냈습니다.

4. 결과는 어땠나요? (성능)

이 AI 가 만든 프로그램은 세계적인 유명 프로그램 (Z3, cvc5) 과 경쟁해 볼 만큼 매우 강력했습니다.

  • 성공률: 수천 개의 테스트 문제 중 대부분을 해결했습니다.
  • 특이점: AI 가 스스로 '예비 전략 (프리프로세싱)'을 추가했을 때 성능이 가장 좋았습니다.
  • 한계: 증명서를 만들 때는 가끔 실패하거나 시간이 너무 오래 걸리기도 했지만, 틀린 증명을 내놓지는 않았습니다. (안전성 확보)

5. 이 실험이 우리에게 주는 교훈 (핵심 메시지)

이 논문은 AI 가 인간을 대체할 수 있다는 것보다, **"AI 가 인간과 함께 일할 때 얼마나 강력한 도구가 될 수 있는지"**를 보여줍니다.

  1. 완벽하지 않아도 된다: AI 는 처음부터 완벽하지 않습니다. 하지만 실수를 지적해주고, 구체적인 예시를 보여주면 스스로 배우고 고칩니다.
  2. 규칙이 중요하다: AI 에게 "시간 제한을 지켜라", "테스트를 해라" 같은 명확한 규칙을 주면 훨씬 안정적으로 일합니다.
  3. 창의성은 AI 에게도 있다: AI 는 단순히 지시받은 대로만 하는 게 아니라, 복잡한 문제를 해결하기 위해 스스로 새로운 전략 (다이아몬드 문제 해결법) 을 고안해내기도 했습니다.

🎯 한 줄 요약

"인간이 코딩을 전혀 하지 않았는데, AI 가 스스로 '논리 검사관'이 되어 복잡한 수학 문제를 해결하고 증명까지 해낸 놀라운 실험. AI 는 아직 완벽하지 않지만, 적절한 가이드만 있다면 인간을 능가하는 도구가 될 수 있다."

이 연구는 미래에 소프트웨어 개발자가 AI 와 협력하여, 인간이 상상하지 못했던 복잡한 논리 도구들을 함께 만들어갈 수 있는 가능성을 보여줍니다.