PAIRED_ETA_CONV : conv
PAIRED_ETA_CONV "\(v1..(..)..vn). f (v1..(..)..vn)"
= |- \(v1..(..)..vn). f (v1..(..)..vn) = f
#set_flag(`print_uncurry`,false);; true : bool #let tm = "\(x:num,y:num). FST (x,y)";; tm = "UNCURRY(\x y. FST(x,y))" : term
let SELECT_PAIR_EQ = PROVE
("(@(x:*,y:**). (a,b) = (x,y)) = (a,b)",
CONV_TAC (ONCE_DEPTH_CONV PAIRED_ETA_CONV) THEN
ACCEPT_TAC (SYM (MATCH_MP SELECT_AX (REFL "(a:*,b:**)"))));;