2017-11-07 25 views
2

매트릭스와 벡터가 포함 된 표현식의 특성을 증명하고 싶습니다 (크기는 고정적이지만 크기는 고정적 일 수 있음).Z3 : 대수 선형 표현

나는 식의 결과가 대각 행렬이나 삼각 행렬이, 또는 명확한 긍정적임을 입증 할 예를 들어

... 내가 인코딩 잘 알려진 속성을 원하는이를 위해

||x + y|| <= ||x|| + ||y|| 
(A * B) * C = A * (B * C) 
det(A+B) = det(A) + det(B) 
Tr(zA) = z * Tr(A) 
(I + AB)^(-1) = I - A(I + BA)^(-1) * B 
... 

나는 이것을 Z3에서 구현하려고 시도했다. 그러나 간단한 속성의 경우에도 알 수 없거나 시간이 초과됩니다. 나는 배열 이론과 한정어로 시도했다.

이 문제가 SMT 해결사로 해결 될 수 있는지 또는 이러한 종류의 문제에 적합하지 않은지 알고 싶습니다. 작은 모범을 보여줌으로써 힌트를 줄 수 있습니까?

+0

이러한 속성을 반드시 인코딩 할 수 있습니다. "충분히 작은"크기로 그들을 증명할 수도 있습니다. 귀하의 도메인도 중요합니다 : 정수, 실수? Latter는 결정할 수있는 이론을 가지고 있지만, 전자는 비선형 Diophantine 방정식을 처리 할 것이므로 'unknown'을 해결하는 솔버로 이어질 수 있습니다. "모든 크기"에 대한 증명은 한정 기호를 필요로하며, 솔버가 유도를하지 않을 때 사소한 것이 아니라면 증명되지 않을 것입니다. 두 경우 모두 시도하지 않고 알 수 없습니다. 귀하의 학습 내용을 공유하십시오! –

답변

2

확실히 Z3을 사용하면이 작업을 수행 할 수 있습니다.

작은 예제 here을 만들었습니다.이 예제는 단위 행렬을 정의하고 대각 행렬이라는 것을 의미하며, 그 다음에 항등 행렬이 대각선임을 증명합니다.

따라서 Z3에서 이러한 종류의 작업을 수행 할 수 있습니다. Dafny 또는 F *와 같은 대화 형 증명 기능이있는 Z3 위에 구축 된 도구를 사용하면 더 나은 시간을 가질 수 있습니다.