major code change: refute can now handle any Isabelle term, adds certain axioms automatically, and can handle inductive datatypes (but not yet recursion over them)
Last = List +
consts last :: 'a list => 'a
recdef last "measure (%xs. length xs)"
"last [x] = x"
"last (x#y#zs) = last (y#zs)"
end