UNFOLD_RIGHT_RULE : (thm list -> thm -> thm)
A |- !z1 ... zr. t = ?y1 ... yp. t1 /\ ... /\ tn -------------------------------------------------------- B u A |- !z1 ... zr. t = ?y1 ... yp. t1' /\ ... /\ tn'
#UNFOLD_RIGHT_RULE [ASSUME "!in out. INV(in,out) = !(t:num). out t = ~(in t)"] # (ASSUME "!(in:num->bool) out. BUF(in,out) = ?l. INV(in,l) /\ INV(l,out)");; .. |- !in out. BUF(in,out) = (?l. (!t. l t = ~in t) /\ (!t. out t = ~l t))