은 ArithExpr
의 수행 할 수 있습니다 : 자바 클래스는 모든 가능한 표현을 포함하지 않는Z3 Java API에서 지나치게 엄격한 타이핑이 필요합니까? Z3, 또한 및 기타 유사한 운영자를위한 자바 API에서
ArithExpr x = ctx.mkInt(0);
ArithExpr y = ctx.mkInt(1);
// Compiles:
ctx.mkAdd(x, y);
// Does not compile:
ctx.mkAdd((Expr) x, (Expr) y);
그러나 ArithExpr
한다. 예를 들어, mkITE
은 Expr
을 반환하지만 if-then-else의 결과가 정수인 경우에도 올바른 Java 클래스가 아니기 때문에 Java API에서 해당 연산을 허용하지 않습니다. (이것은 내 코드에서 실행중인 문제입니다.)
Java API의 무언가가 누락되었거나 (의도하지 않은) 제한입니까?
ctx.mkITE의 결과를 (ArithExpr)으로 캐스팅 할 수 있어야합니다. –