프로그램과 요구를 함께 작성하기
함수의 입력 조건과 결과 관계, 반복 중 유지할 성질 등을 코드 가까이에 기술한다. 검증기는 구현이 이런 명세를 만족하는지 확인한다. 예제 실행이 보여 주는 일부 결과보다 일반적인 관계를 다룰 수 있지만 요구사항을 명세로 옮기는 작업은 작성자의 책임이다.
자동 증명과 필요한 설명
클래스와 트레이트 및 대수적 자료형 같은 프로그램 구조와 함께 증명을 위한 표현을 제공한다. 루프 불변식과 종료 조건, 읽고 쓰는 범위 등을 지정해 검증을 돕는다. 원하는 성질이 명백해 보여도 증명기에 필요한 관계를 추가로 설명해야 할 수 있다. 확인하지 못한 조건을 곧바로 실제 오류로 단정하지 않고 원인을 조사한다.
검증과 다른 환경으로의 연결
실행 코드를 C샵과 Go, Python, Java 및 JavaScript 등으로 컴파일하는 기능을 제공한다. 지원 대상과 외부 코드 연결의 조건은 사용할 버전에서 확인한다. 검증 결과는 명세와 가정의 범위에 해당하며 외부 시스템의 설정이나 통신 장애까지 자동으로 해결하지 않는다. 코드와 계약이 바뀌면 검증을 다시 수행하고 실제 통합 동작도 확인한다.