MCPcopy Create free account
hub / github.com/AliveToolkit/alive2 / mkLambda

Method mkLambda

smt/expr.cpp:2203–2216  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2201}
2202
2203expr expr::mkLambda(const expr &var, const char *var_name, const expr &val) {
2204 C2(var, val);
2205
2206 if (!val.vars().count(var))
2207 return mkConstArray(var, val);
2208
2209 expr array, idx;
2210 if (val.isLoad(array, idx) && idx.eq(var))
2211 return array;
2212
2213 auto sort = var.sort();
2214 auto name = Z3_mk_string_symbol(ctx(), var_name);
2215 return Z3_mk_lambda(ctx(), 1, &sort, &name, val());
2216}
2217
2218expr expr::simplify() const {
2219 C();

Callers

nothing calls this directly

Calls 4

isLoadMethod · 0.80
sortMethod · 0.80
varsMethod · 0.45
eqMethod · 0.45

Tested by

no test coverage detected