Checking.CheckerSourcetype t = {env : Api.Env.t;The current environement used for type checking
*)in_path : F.path;path of the original file that should be typed checked
*)meta_out : M.cfg;Meta configuration to translate back universes of Universo to the original theory universes
*)constraints : (B.name, U.pred) Hashtbl.t;additional user constraints
*)out_file : F.cout F.t;File were constraints are written
*)}globel_env is a reference to the current type checking environment.
module Typing : sig ... endcheck_user_constraints table name t checks whether the user has added constraints on the onstant name and if so, add this constraint. In t, every universo variable (md.var) are replaced by the sort associated to the constant name.
mk_entry env e type checks the entry e in the same way then dkcheck does. However, the convertibility tests is hacked so that we can add constraints dynamically while type checking the term. This is really close to what is done with typical ambiguity in Coq.