2014-09-26 12 views
0

내 코드에 제약 조건을 추가하는 동안 동일한 제약 조건을 여러 번 표현식 벡터에 추가해야한다는 것을 알았습니다. 중복 된 표현식을 제거 할 수 있도록 두 표현식이 정확히 동일한 지 여부를 감지하는 API가 있습니까?Z3 두 표현식이 같은지 확인하십시오

답변

0

표현식은 항상 고유 한 포인터로 내부화됩니다. 따라서 동일한 하위 표현식을 사용하여 두 개의 표현식을 작성하면 그 표현식은 동일하게됩니다. 당신은 단순히 포인터 평등을 사용할 수 있습니다.

표현식에도 "식별자"가 있습니다. 식별자를 얻기위한 C 호출은 Z3_ast_get_id라고하며 다른 프로그래밍 언어의 다른 API에는 에 해당하는 호출이 있습니다 (C++에서부터 C# 및 Java의 Z3_ast_get_id를 사용해야하지만 "Id"/ "id"라고 함).

+0

또 하나의 질문으로, ** Z3_get_ast_id **의 반환 유형은 부호가 없으므로 2^32 ID가 있음을 확인했습니다. 두 개의 표현식이 2^32 개 이상의 표현식과 같을 수 있습니까? –

관련 문제