op ## : ('a -> 'b) * ('c -> 'd) -> 'a * 'c -> 'b * 'd
- (I ## dest_imp) (strip_forall (Term `!x y z. x /\ y ==> z /\ p`)); > val it = ([`x`, `y`, `z`], (`x /\ y`, `z /\ p`))