kdrag.utils.propagate

kdrag.utils.propagate(maybes: list[BoolRef], known: BoolRef) list[BoolRef]

Prune the list of maybes to the ones implies by known

>>> p,q,r = smt.Bools("p q r")
>>> propagate([p, q, r, smt.And(p,q)], p & q)
[p, q, And(p, q)]
Parameters:
  • maybes (list[BoolRef])

  • known (BoolRef)

Return type:

list[BoolRef]