Я хочу создать функцию, которая может хранить левый и правый параметры функции implies () в 2 различных переменных выражения.Решение с кодом очень заметно.Спасибо.
Это то, что я пробовал раньше.
#include<iostream>
#include<string>
#include "z3++.h"
using namespace z3;
using namespace std;
void walk(int tab, expr e)
{
string blanks(tab, ' ');
if(e.is_const())
{
cout << blanks << "ARGUMENT: " << e << endl;
}
else
{
cout << blanks << "APP: " << e.decl().name() << endl;
for(int i = 0; i < e.num_args(); i++)
{
walk(tab + 5, e.arg(i));
}
}
}
int main()
{
context c;
expr x = c.bool_const("x");
expr y = c.bool_const("y");
expr z = c.bool_const("z");
expr e = implies(z,(x && y));
walk(0, e);
}
и это был вывод:
APP: =>
ARGUMENT: z
APP: and
ARGUMENT: x
ARGUMENT: y