# GEN_BETA_CONV `(\x. x + 1) 2`;;
val it : thm = |- (\x. x + 1) 2 = 2 + 1
# GEN_BETA_CONV `(\(x,y,z). x + y + z) (1,2,3)`;;
val it : thm = |- (\(x,y,z). x + y + z) (1,2,3) = 1 + 2 + 3
# GEN_BETA_CONV `(\[a;b;c]. b) [1;2;3]`;;
val it : thm = |- (\[a; b; c]. b) [1; 2; 3] = 2
However, it will fail if there is a mismatch between the varstruct and the
argument, or if it is unable to make sense of the generalized abstraction:
# GEN_BETA_CONV `(\(SUC n). n) 3`;;
Exception: Failure "term_pmatch".
# GEN_BETA_CONV `(\(x,y,z). x + y + z) (1,x)`;;
Exception: Failure "dest_comb: not a combination".