Since version 2.2.0, the alt-ergo library is built and installed.
You can access the list of modules.
The Alt-Ergo codebase is roughly divided into the following categories:
In this category are defined most of the structures used in Alt-Ergo.
First are the Abstract Syntax Trees used in Alt-Ergo. There exists three main different ASTs: the AltErgoLib.Parsed module defines the terms generated by the native parser of Alt-Ergo, the AltErgoLib.Typed module defines typechecked terms, which are an intermediary used by Alt-Ergo before translating them into hashconsed expressions as defined in AltErgoLib.Expr. The AltErgoLib.Ty module defines the structure used to represent types (which are common between typed terms and hashconsed expressions). Finally, the AltErgoLib.Commands module defines a notion of commands that can be sent to the SMT solver.
AltErgoLib.Parsed AltErgoLib.Ty TypesAltErgoLib.Typed Typed ASTAltErgoLib.Expr Data structuresAltErgoLib.Commands These modules make use of the following modules to abstract over variables and symbols:
Lastly, the following modules are used by the reasonners in the backend:
AltErgoLib.Explanation AltErgoLib.Satml_types AltErgoLib.Fpa_rounding AltErgoLib.Xliteral AltErgoLib.Profiling The frontend provides an easily usable user interface for the Alt-Ergo solver. It is split into three main parts.
The AltErgoLib.Frontend defines a frontend for the core solver, as a functor parametrized by a SAT solver implementation, and returning a solver that can process commands as defined by the AltErgoLib.Commands module.
The AltErgoLib.Input module defines a notion of input method. An input method is used to transform a string input (typically one or more files), into typed terms and statements. These typed terms can then be translated into commands using the AltErgoLib.Cnf module.
Finally, the native input method is defined in the AltErgoLib.Parsed_interface and AltErgoLib.Typechecker modules.
AltErgoLib.Cnf AltErgoLib.Frontend AltErgoLib.Input Typed inputAltErgoLib.Parsed_interface Declaration of types *AltErgoLib.Typechecker TODO: Add some more explanations.
AltErgoLib.Arrays_rel AltErgoLib.Theory AltErgoLib.Ccx AltErgoLib.Relation AltErgoLib.Intervals AltErgoLib.Inequalities AltErgoLib.IntervalCalculus AltErgoLib.Records_rel AltErgoLib.Ite_rel AltErgoLib.Sig_rel AltErgoLib.Enum_rel AltErgoLib.Bitv_rel AltErgoLib.Uf AltErgoLib.Use AltErgoLib.Matching AltErgoLib.Instances AltErgoLib.Sat_solver_sig AltErgoLib.Fun_sat AltErgoLib.Satml AltErgoLib.Satml_frontend AltErgoLib.Satml_frontend_hybrid AltErgoLib.Sat_solver AltErgoLib.Matching_types AltErgoLib.Shostak AltErgoLib.Ac AltErgoLib.Arith AltErgoLib.Arrays AltErgoLib.Bitv AltErgoLib.Enum AltErgoLib.Ite AltErgoLib.Polynome AltErgoLib.Records AltErgoLib.Sig AltErgoLib.Th_util Utilities module specific to Alt-Ergo:
AltErgoLib.Config AltErgoLib.Errors AltErgoLib.Steps Module_NameAltErgoLib.Options AltErgoLib.Version AltErgoLib.Printer Stdlib extensions/replacements/wrappers:
AltErgoLib.Util AltErgoLib.Heap Heaps.AltErgoLib.Emap AltErgoLib.Hstring AltErgoLib.Compat AltErgoLib.Gc_debug AltErgoLib.Timers AltErgoLib.Hconsing Generic Hashconsing.AltErgoLib.Vec AltErgoLib.Loc Position in input filesAltErgoLib.My_unix Unix wrapperAltErgoLib.My_list Lists utilies This modules defines some helper functions on listsAltErgoLib.Numbers Unfortunately, odoc doesn't seem to correctly generate the index list the same way that ocamldoc does, :/ While the index of types and values is not generated yet, you can always browse the list of modules.
indexlist