Decidable functions: implementaiton and examples.

Representation of polymorphic functions akin to container morphisms and automatic proofs of porperties of lists. Although these definitions give a non-dependent view of container moprhisms, dependent types are used throughout to represent arbitrary number of variables and tupples. This was mainly to exploit previous definitions, results and tactics involving Fin and Vec (n tupes of natural numbers, N^n, are represented as Vec N n) and does not invalidate the non-dependent idea.