PAIRED_BETA_CONV : term -> thm
::= (v1,v2) | ( ,v) | (v, ) | ( , )
`(\((a,b),(c,d)). a + b + c + d) ((1,2),(3,4))`
`(\((a,b),(c,d)). a + b + c + d) ((1,2),p)`
|- (\.tm) t = t[t1,...,tn/v1,...,vn]
`(\(v1,...,vn).t) (t1,...,tn)`
|- (\(v1, ... ,vn).t) (t1, ... ,tn) = t[t1,...,tn/v1,...,vn]
# PAIRED_BETA_CONV `(\((a,b),(c,d)). a + b + c + d) ((1,2),(3,4))`;; val it : thm = |- (\((a,b),c,d). a + b + c + d) ((1,2),3,4) = 1 + 2 + 3 + 4
# PAIRED_BETA_CONV `(\((a,b),p). a + b) ((1,2),(3+5,4))`;; # PAIRED_BETA_CONV `(\((a,b),(c,d)). a + b + c + d) ((1,2),p)`;;