canonical 'cases'/'induct' rules for n-tuples (n=3..7)
(really belongs to theory Product_Type, but doesn't work there yet)
Sep2 = Main +
consts sep :: 'a list => 'a => 'a list
recdef sep "measure length"
"sep (x#y#zs) = (%a. x # a # sep zs a)"
"sep xs = (%a. xs)"
end