kdrag.utils.bysect
- kdrag.utils.bysect(thm, by: list[Proof] | dict[object, Proof], **kwargs) Sequence[tuple[object, Proof]]
Bisect the by list to find a minimal set of premises that prove thm. Presents the same interface as prove
>>> x,y,z = smt.Ints("x y z") >>> by = [kd.prove(x + 1 > x), kd.axiom(x == y), kd.prove(y + 1 > y), kd.axiom(y == z)] >>> bysect(x == z, by=by) [(1, |= x == y), (3, |= y == z)]