次の SMT 式は、矢印の行で x13 が av5 に置き換えられると、rise4fun サイトで構文チェックに失敗します。
(set-info :status unknown)
;(set-logic QF_BV)
(declare-fun in3 () (_ BitVec 16))
(assert
(let ((x8 ((_ zero_extend 16) in3)))
(let ((x13 (ite (not (= x8 (_ bv00000000 32))) (_ bv00045069 32) (_ bv00000174 32))))
(let ((av5 (= x13 (_ bv00045069 32))))
(= x13 (_ bv4294967295 32)))))) <---------
(assert true)
(check-sat)
エラーメッセージは
Z3(8, 26): エラー: 無効な関数の適用、位置 2 の引数の並べ替えの不一致
私が何を間違っているのでしょうか?