추상 불변식 생성기
추상 해석 기법으로 루프 불변식과 함수 사전·사후조건을 추론해 Dafny·Isabelle·Coq·ACSL 문법으로 뽑아주는 스킬.
개발·코딩고급★ 143⑂ 14AI 점수 7/10마지막 업데이트: 2026. 2. 22.
무엇을 해주나
- 코드에서 명세가 필요한 지점(루프, 함수 경계, assert)을 먼저 찾아냅니다.
- 구간(interval)·관계(relational)·형태(shape) 분석을 통해 변수 범위와 변수 간 관계, 자료구조 속성을 추론합니다.
- 초기화·유지·종료 3조건을 만족하는 루프 불변식을 템플릿(카운터/누적/탐색 루프) 기반으로 생성합니다.
- 배열 접근, 나눗셈, 널 포인터 같은 전제조건과 정렬·최대값·이진탐색 같은 사후조건을 자동 제안합니다.
- 최종 결과를 Dafny, Isabelle/HOL, Coq, ACSL(C) 문법으로 바로 붙여 쓸 수 있게 포맷합니다.
- 약한 불변식 강화, 중첩 루프, 다중 탈출 조건 처리 패턴도 함께 제공합니다.
이런 분께 추천
- Dafny·Coq·Isabelle·Frama-C로 형식 검증을 하는 연구자·엔지니어
- 안전 필수(safety-critical) 코드에 계약(contract)을 붙여야 하는 임베디드/항공/금융 개발자
- 알고리즘 정확성 증명을 가르치거나 배우는 대학원생·강의자
활용 예시
- 파이썬 삽입 정렬 코드를 붙여넣고 "Dafny 불변식으로 옮겨줘"라고 요청 → 외부/내부 루프 불변식과 multiset 보존 조건까지 포함한 Dafny 메서드를 받습니다.
- C 함수
int find_max(int arr[], int n)에 대해 ACSL 주석(requires \valid(...),loop invariant,loop variant)을 생성해 Frama-C 검증에 투입합니다. - 검증기가 "invariant too weak"를 낼 때, 이미 처리한 인덱스 구간에 대한 속성을 추가하는 강화 기법을 적용해 증명을 통과시킵니다.
· · · 설치 가이드 · · ·
설치 없이 지금 한 번 써보기
아래를 Claude에 붙여넣으면 설치하지 않고도 이 스킬을 그대로 씁니다.
이 파일의 지시를 읽고 그대로 따라서 나를 도와줘: https://raw.githubusercontent.com/ArabelaTso/Skills-4-SE/HEAD/skills/abstract-invariant-generator/SKILL.md 내가 원하는 것: (여기에 하고 싶은 일을 쓰세요)
Claude가 링크를 열지 못하면, 링크를 직접 열어 내용을 복사해 붙여넣으세요.
↓ 쓸 만하면 아래에서 ZIP을 받아 설치하세요. 그러면 매번 붙여넣지 않아도 알아서 작동합니다.
Claude 앱에 설치 (터미널 필요 없음)
- 아래 버튼으로 ZIP 파일을 받으세요.
- Claude 설정 → Capabilities에서 '코드 실행 및 파일 생성'을 켭니다. (한 번만)
- Claude에서 Customize → Skills → + → '스킬 업로드'를 누르고 받은 ZIP을 올립니다.
Claude Code에 설치
Claude에게 맡기기 — 아래 문장을 Claude Code에 붙여넣으세요
클로드스킬마트에서 찾은 스킬을 설치해줘. GitHub 저장소 ArabelaTso/Skills-4-SE 의 skills/abstract-invariant-generator 폴더를 내 ~/.claude/skills/abstract-invariant-generator/ 에 그대로 복사해줘. 설치가 끝나면 이 스킬로 무엇을 할 수 있는지 한 줄로 알려줘.
직접 명령으로 설치하기
git clone https://github.com/ArabelaTso/Skills-4-SE.git && mkdir -p ~/.claude/skills && cp -r Skills-4-SE/skills/abstract-invariant-generator ~/.claude/skills/⚠ 제3자가 만든 스킬입니다. 설치 전 원본 저장소를 한 번 확인하세요.
- 터미널을 열고 스킬 저장소를 내려받습니다:
git clone https://github.com/ArabelaTso/Skills-4-SE.git - 스킬 폴더가 없다면 만듭니다:
mkdir -p ~/.claude/skills - 이 스킬만 복사합니다:
cp -r Skills-4-SE/skills/abstract-invariant-generator ~/.claude/skills/ ls ~/.claude/skills/abstract-invariant-generator로 SKILL.md와 references 폴더가 들어왔는지 확인합니다.- Claude Code를 다시 실행한 뒤 "이 함수의 루프 불변식을 Dafny로 만들어줘"처럼 요청하면 스킬이 자동 발동합니다.
- 실제 검증까지 하려면 Dafny, Coq, Isabelle, Frama-C 등 대상 검증기를 별도로 설치해 생성된 명세를 돌려보세요.
GitHub에서 원본 보기 ↗라이선스: Apache-2.0