let mk_app f l =
match l with
| [] ->
mk_const f
| [a] ->
App(f, l , (14007 + (Sym.hash f) + hash a) land 0x3FFFFFFF)
| [a; b] ->
App(f, l, (19007 + (Sym.hash f) + hash a + hash b) land 0x3FFFFFFF)
| [a; b; c] ->
App(f, l, (17007 + (Sym.hash f) + hash a + hash b + hash c) land 0x3FFFFFFF)
| l ->
App(f, l, (27007 + (Sym.hash f) + (List.fold_left (fun h a -> h+hash a) 1 l)) land 0x3FFFFFFF)