OLCoq.OlSourcetype formula = | Variable of {id : int;unique_key : int;mutable polar_formula : polar_formula option;}| Neg of {child : formula;unique_key : int;mutable polar_formula : polar_formula option;}| Or of {children : formula list;unique_key : int;mutable polar_formula : polar_formula option;}| And of {children : formula list;unique_key : int;mutable polar_formula : polar_formula option;}| Literal of {b : bool;unique_key : int;mutable polar_formula : polar_formula option;}and polar_formula = | PolarVariable of {id : int;polarity : bool;unique_key : int;mutable inverse : polar_formula option;mutable normal_form : normal_formula option;}| PolarAnd of {children : polar_formula list;polarity : bool;unique_key : int;mutable inverse : polar_formula option;mutable normal_form : normal_formula option;}| PolarLiteral of {b : bool;unique_key : int;mutable inverse : polar_formula option;mutable normal_form : normal_formula option;}and normal_formula = | NormalVariable of {id : int;polarity : bool;unique_key : int;mutable inverse : normal_formula option;mutable formulaP : formula option;mutable formulaN : formula option;lt_cache : (int, bool) Hashtbl.t;}| NormalAnd of {children : normal_formula list;polarity : bool;unique_key : int;mutable inverse : normal_formula option;mutable formulaP : formula option;mutable formulaN : formula option;lt_cache : (int, bool) Hashtbl.t;}| NormalLiteral of {b : bool;unique_key : int;mutable inverse : normal_formula option;mutable formulaP : formula option;mutable formulaN : formula option;lt_cache : (int, bool) Hashtbl.t;}