Things to do/things to implement/issues

+ Only translate once for every prover call (at the moment the clause set
is translated repeatedly).

+ Introduce intermediate layer between reasoning loop and starting point
  for conjecture splitting (e.g. <=> --> => & <=; /\ --> ...)
  
+ Talk by A. Reynolds (Dagstuhl): Function synthesis using counterexample generators
  (see also this mono-call-things), can be used for fragments of conjectures à la
  ?[F]: ![X...]: P @ (F X) 
  
+ Improve if-then-else reasoniong, Chad mentioned work by Backes/Brown
  --> Splitting?

+ Implement SiNe  

+ Rework Let-expressions by parsing them to lambda abstractions
 
+ Abstraction-refinement (Konstantin Korovon, see IWIL 2017)

+ Guidance by similarity by antiunification?

+ Check for axioms used in external proofs and only use those in external inference
  proof.
  
+ Recoqnition of finite types is done to some point. Add enumeration of all inhabitants
  of a finite type.
  
+ Work on CounterSat/Sat functionality. What restrictions are necessary to avoid false
  negatives?
  
+ Recognize injective functions and postulate the existence of an inverse function

+ Conflict-based instantiation (reynolds), set of ground literals, find instance that makes them false. (---> generalize to unit equations and use HO matching. use unit storage and look for instance that gives empty clause)
