Z3 максимизировать в C ++

В Z3 следующее четко оценивается максимум до 2 с моделью x = true и y = true.

(declare-const x Bool)
(declare-const y Bool)
(declare-const z Bool)
(assert(= z false))
(maximize(
  +  
    (ite (= x true) 1 0) 
    (ite (= y true) 1 0) 
    (ite (= z true) 1 0)
  )
)
(check-sat)
(get-model)

Как я могу реализовать это с помощью API C / C ++? Я попытался просто разобрать, используя это:

Z3_ast parsed = Z3_parse_smtlib2_string(c,<The above Z3>,0,0,0,0,0,0);
z3::expr simpleExample(c, parsed);
s.add(simpleExample);

Но это печатаетunsupported \n ;maximize».

Я не возражаю против создания выражения вручную - вместо использования созданного файла. Я просто не знал, какие функции expr или операторы использовать для "maximize».

ДОБАВЛЕНИЕ: В свете некоторых недавних ответов и обсуждений, кажется очевидным, что то, что я запрашиваю, на данный момент не является нормальной функциональностью. Итак, я изменяю вопрос, чтобы спросить о конкретных деталях способа заставить эту работу работать так, как сейчас.

Ответы на вопрос(2)

Ваш ответ на вопрос