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)
types 'v binop = 'v => 'v => 'v
datatype ('a,'v) expr = Cex 'v
| Vex 'a
| Bex ('v binop) (('a,'v) expr) (('a,'v) expr)