kdrag.rewrite.all_narrow
- kdrag.rewrite.all_narrow(vs: list[ExprRef], t: ExprRef, lhs: ExprRef, rhs: ExprRef) list[tuple[ExprRef, dict[ExprRef, ExprRef]]]
- Look for pattern lhs to unify with a subterm of t. returns a list of all of those lhs -> rhs applied + the substitution resulting from the unification. The substitution is so that we can apply the other t -> s rule once we return. - This helper is asymmettric between t and lhs. You need to call it twice to get all critical pairs. - >>> x,y,z = smt.Reals("x y z") >>> all_narrow([x,y], -(-(-(x))), -(-(y)), y) [(y, {y: -x}), (-y, {x: y}), (--y, {x: -y})] - Parameters:
- vs (list[ExprRef]) 
- t (ExprRef) 
- lhs (ExprRef) 
- rhs (ExprRef) 
 
- Return type:
- list[tuple[ExprRef, dict[ExprRef, ExprRef]]]