EXVERUS: Verus 증명 수리를 위한 Counterexample 기반 자동화 프레임워크
EXVERUS는 Verus 검증기에 대한 LLM 기반 증명 생성 과정을, 검증 실패 시 자동으로 생성·검증되는 소스 레벨 Counterexample을 활용해 단계별로 증명을 수정하는 시스템이다. 기존의 오류 메시지에 의존하는 접근법과 달리, 구체적인 실행 상태를 제시함으로써 증명 성공률·비용 효율성을 크게 향상시킨다.
저자: Jun Yang, Yuechun Sun, Yi Wu
본 논문은 LLM을 활용한 Verus 증명 자동 생성 분야에서 발생하는 핵심 문제, 즉 검증 실패 시 제공되는 피드백이 지나치게 추상적이고 구체적인 실행 정보를 제공하지 못한다는 점을 해결하고자 한다. 기존 접근법은 Verus가 반환하는 오류 메시지(예: “invariant not satisfied”)에만 의존하거나, 대규모 데이터셋을 구축해 사전 학습·미세조정을 수행한다. 그러나 Verus가 내부적으로 Rust 코드를 SSA 형태와 양자화된 SMT 제약으로 낮추는 과정에서 원본 소스와의 매핑이 손실되고, 솔버가 반환하는 모델은 식별자와 값이 추상화돼 인간이 해석하기 어렵다. 특히, 복잡한 양자화가 포함된 VC는 솔버가 “unknown”을 반환하거나 타임아웃이 발생하는 경우가 빈번하다.
EXVERUS는 이러한 한계를 극복하기 위해 “소스 레벨 Counterexample”을 직접 생성하는 프레임워크를 제안한다. 핵심 아이디어는 LLM에게 Verus가 생성한 VC 대신, 해당 VC를 직접 격리하고 위반하는 변수 할당을 찾는 SMT‑LIB 형식의 쿼리를 작성하도록 프롬프트를 설계하는 것이다. 이때 변수명에 타입·구조 정보를 포함시켜, 솔버가 반환하는 모델을 JSON 형태로 바로 해석 가능하게 만든다. 예를 들어, 배열 `nums`의 길이를 2로 가정하고 첫 두 원소만 모델링함으로써, 솔버는 `nums = vec!
원본 논문
고화질 논문을 불러오는 중입니다...
댓글 및 학술 토론
Loading comments...
의견 남기기