kdrag.kernel.obtain
- kdrag.kernel.obtain(thm: QuantifierRef) tuple[list[ExprRef], Proof]
Skolemize an existential quantifier. exists xs, P(xs) -> P(cs) for fresh cs https://en.wikipedia.org/wiki/Existential_instantiation
>>> x = smt.Int("x") >>> obtain(smt.Exists([x], x >= 0)) ([x!...], |= Implies(Exists(x, x >= 0), x!... >= 0)) >>> y = FreshVar("y", smt.IntSort()) >>> obtain(smt.Exists([x], x >= y)) ([f!...(y!...)], |= Implies(Exists(x, x >= y!...), f!...(y!...) >= y!...))
- Parameters:
thm (QuantifierRef)
- Return type:
tuple[list[ExprRef], Proof]