코드로지션: 신경‑기호 결합으로 소프트웨어 논리 정밀 분석
초록
코드로지션은 대형 언어 모델(LLM)을 활용해 소스 코드를 형식화된 수학 모델로 변환하고, 산업용 자동 추론 엔진인 ImandraX와 연계해 프로그램 상태공간, 제어 흐름, 경계 조건 등을 정량·정성적으로 분석한다. 새로운 벤치마크 code‑logic‑bench을 도입해 LLM 단독과 코드로지션‑보강 모델을 비교했으며, 전자는 41‑47% 낮은 정확도에 머물렀던 반면, 형식화·추론을 결합한 시스템은 정확도와 커버리지를 크게 향상시켰다.
상세 분석
코드로지션은 “LLM → 자동 형식화 → 형식 모델 → 자동 추론”이라는 파이프라인을 제시한다. 핵심은 ImandraX가 제공하는 Imandra Modeling Language(IML)이다. IML은 OCaml 기반의 순수 함수형 언어에 사양·검증 전용 구문을 추가해, 프로그램 로직을 수학적 정의와 정리 형태로 기술한다. 코드로지션은 LLM을 ‘자동 형식화 에이전트’로 활용해, 원시 소스 코드를 IML 추상화로 변환한다. 이 과정에서 불명확한 함수는 ‘불투명 함수’, ‘공리·가정’, ‘근사 함수’ 등으로 표시해 형식화의 한계를 명시한다. 변환된 모델은 ImandraX의 ‘Region Decomposition’ 기법을 통해 상태공간을 다각형·구간으로 분할하고, 각 영역에 대해 자동 테스트 케이스와 증명 목표를 생성한다. 이렇게 얻어진 정량적 영역 정보는 ‘State Space Estimation Accuracy’, ‘Outcome Precision’, ‘Decision Boundary Clarity’ 등 다양한 메트릭으로 평가된다.
코드로지션은 Reasoner‑Agnostic 설계를 채택해 ImandraX 외에도 Coq, Isabelle 등 다른 자동 추론기와 연동 가능하도록 인터페이스를 추상화한다. 서버‑클라이언트 구조와 Python RemoteGraph API, VS Code 플러그인 등을 제공해 개발자 워크플로우에 자연스럽게 삽입할 수 있다.
벤치마크인 code‑logic‑bench은 기존 수학 증명·코드 엔지니어링 벤치마크의 중간 지점을 목표로, 프로그램의 제어 흐름, 커버리지 제약, 엣지 케이스 등을 정량화한 ‘정답’(ground truth)을 형식 모델과 자동 영역 분해를 통해 생성한다. 실험에서는 GPT‑4, Claude‑2 등 최신 LLM을 단독으로 사용할 때 평균 정확도가 38% 수준에 머물렀지만, 코드로지션과 결합했을 때 85% 이상으로 상승했으며, 특히 상태공간 추정과 경계 식별에서 90% 이상 정확도를 기록했다.
핵심 인사이트는 LLM이 “번역·추론 보조” 역할을 할 때는 충분히 강력하지만, “수학적 완전성· exhaustiveness”를 요구하는 작업에서는 형식화·자동 추론이 필수적이라는 점이다. 코드로지션은 LLM의 자연어 이해와 형식화 능력을 자동 추론 엔진의 논리적 엄밀함과 결합해, 기존 LLM‑only 접근법이 놓치기 쉬운 미묘한 버그와 경계 조건을 체계적으로 탐지한다.
댓글 및 학술 토론
Loading comments...
의견 남기기