1. For reconstruction: look at the discrimination (also injection?)
   axioms used in the ATP proofs and add them to the context before
   invoking a reconstruction tactic.

2. Omit (some) type arguments (inductive type parameters?) to
   polymorphic functions/constructors (e.g. cons).

3. Omit (some) type guards when the type may be inferred (e.g. forall
   x : nat, Even(x) -> phi probably may be translated to forall x,
   Even(x) -> phi', because Even(x) implies nat(x)).

4. It should be safe to omit type guards in injectivity and
   discrimination axioms for inductive types (but not in inversion
   axioms).

5. Heuristic monomorphisation (instantiation of polymorphic
   definitions with types).
