PulseFormulaPhi.Normalizermodule that breaks invariants more often that the rest, with an interface that is safer to use
val and_var_linarith :
Var.t ->
LinArith.t ->
(t * new_eqs) ->
(t * new_eqs) SatUnsat.tval normalize_atom : t -> Atom.t -> Atom.t list SatUnsat.tval and_normalized_atoms :
(t * new_eqs) ->
Atom.t list ->
orig_atom:Atom.t list ->
add_term:bool ->
(t * new_eqs) SatUnsat.tuse with the result of normalize_atom in place of and_atom
val and_dynamic_type :
Var.t ->
IR.Typ.t ->
?source_file:IBase.SourceFile.t ->
(t * new_eqs) ->
(t * new_eqs) SatUnsat.tand_atom atom (phi, new_eqs) is SatUnsat.(normalize_atom phi atom >>= and_normalized_atoms (phi, new_eqs))