We present a characteristic type-inference algorithm for Rabbit. Rabbit is the program-analysis-specfication language for System Zoo. Rabbit has some overloaded operators and allows implicit type castings. Owing to these features of the language, we cannot apply a simple type-inference algorithm based on unification.
We present a lattice-validation algorithm for Rabbit. Rabbit provides various syntax to define lattices. Among those, providing user-defined join operator to a set sometimes results in an invalid lattice definition. We want to detect the invalid lattice definition, for it may result in an incorrect program analysis.