Module Engine.Typing

Given a typing environment and an expressions, returns a triple containing:

  • A type if we found a necessary type
  • A boolean: true if the expression is typable, false if is definitely a type error
  • A list of corrections missing (not sure about that one ?)
val infer_types_expr : Symbolic.Type_env.t -> Gillian.Gil_syntax.Expr.t -> unit
val infer_types_formula : Symbolic.Type_env.t -> Gillian.Gil_syntax.Formula.t -> unit
val naively_infer_type_information : Symbolic.Pure_context.t -> Symbolic.Type_env.t -> unit
val substitution_in_place : Gillian.Symbolic.Subst.t -> Symbolic.Type_env.t -> unit