ALT-ERGO(1)
๐ฆ ALT-ERGO(1) ๐ฆ
Okay bestie, welcome to the Alt-ergo Manual ๐ธ This is the ALT-ERGO(1) page, and it's the one that explains how to run the solver on a file. Let's get into it ๐
โจ NAME โจ
okay so the name is alt-ergo, and its whole job is to execute Alt-Ergo on the given file ๐ฅ
โจ SYNOPSIS โจ
alt-ergo [OPTION]โฆ [FILE]
โจ ARGUMENTS โจ
FILEโ this is your source file ๐ It has to end in.ae,.smt2, or.psmt2..mlwand.whyare deprecated, so maybe don't start new stuff with those ๐
โจ OPTIONS โจ
-d,--debugโ flips on the debugging flag ๐-i FMT,--input=FMTโ sets the default input format toFMT. It has to be one ofnative,altergo,alt-ergo,smtlib2,smt-lib2, orwhy3โจ This is super handy when the file extension can't tell Alt-Ergo which parser to use, like in JS mode, GUI mode, etc.-m VAL,--model=VAL(absent=none)โ experimental model support on labeled terms ๐ฌVALmust benone,default,complete, orall.completeshows one full model, andallshows every model ๐-o FMT,--output=FMTโ controls the solver's output format ๐FMTmust benativeorsmtlib. The native format printsValid,Invalid, orI don't know, while the smtlib format printsunsat,sat, orunknown. If you don't pick one, Alt-Ergo uses its heuristics to figure out the right format based on the input format. And heads up: if you skip this flag, Alt-Ergo will set the output format based on the input file's extension ๐-p,--pretty-outputโ prints output with formatting rules, headers, and colors ๐-r,--replay-used-contextโ replays using the axioms and predicates saved in a.usedfile ๐-S STEPS,--steps-bound=STEPS(absent=-1)โ sets the maximum number of steps ๐ช-s,--save-used-contextโ saves the used axioms and predicates in a.usedfile ๐พ This one implies--unsat-core, so it comes with that too ๐ซถ-t VAL,--timelimit=VALโ sets the time limit toVALseconds โฐ Heads up, this isn't supported on Windows ๐-u,--unsat-coreโ experimental support for computing and printing unsat-cores ๐งช-v,--verboseโ turns on verbose mode ๐ฃ
โจ EXECUTION OPTIONS โจ
--add-parser=VALโ registers a brand new parser for Alt-Ergo ๐ง--colors-in-outputโ prints output with colors ๐--frontend=FTD(absent=legacy)โ picks the parsing and typing frontend ๐งฉ--no-forced-flush-in-outputโ prints output without the forced flush at the end of each print โจ--no-formatting-in-outputโ don't use formatting rules in the output ๐ โโ๏ธ--no-headers-in-outputโ prints output without headers ๐--no-locs-in-answersโ doesn't show the locations of goals when the solver prints its answers ๐--parse-onlyโ stops right after parsing ๐--prelude=VALโ adds a file that gets loaded as a prelude ๐ This one is cumulative, and the order of successive preludes is kept, so the order you list them in matters ๐ซถ--type-onlyโ stops right after typing ๐--type-smt2โ stops right after SMT2 typing ๐
โจ LIMIT OPTIONS โจ
--age-bound=AGE(absent=50)โ sets the age limit bound โณ--fm-cross-limit=VAL(absent=10000)โ skips the Fourier-Motzkin variable elimination steps that might produce more inequalities than the given limit ๐ซ Unit eliminations always happen though, no matter what ๐--timelimit-interpretation=SECโ sets the time limit toSECseconds for model generation โฑ๏ธ Also not supported on Windows, sorry bestie ๐ญ--timelimit-per-goalโ the time limit you gave with--timelimitgets applied to each goal when a file has multiple goals ๐ฏ In that case, preprocessing time is counted separately from resolution time. This doesn't matter in GUI mode ๐ฅ๏ธ
โจ INTERNAL OPTIONS โจ
--disable-weaksโ stops the GC from collecting hashconsed data structures that aren't reachable ๐๏ธ This is useful if you want more determinism ๐ค--enable-assertionsโ turns on verification of some heavy invariants ๐--gc-policy=PLCY(absent=0)โ sets the GC allocation policy ๐ง0is next-fit,1is first-fit, and2is best-fit. Check out the Gc module of the OCaml distribution if you want more info ๐--warning-as-errorโ treats warnings as errors โ ๏ธ
โจ OUTPUT OPTIONS โจ
--interpretation=VAL(absent=0)โ experimental counter-example generation ๐ต๏ธ The possible values are1,2, or3, which compute an interpretation before returningUnknown, before instantiation (1), before every decision (2), or before every instantiation (3). A negative value (-1,-2, or-3) turns off interpretation display ๐ Also, note that the--max-splitlimitation gets ignored during the model generation phase โจ
โจ CONTEXT OPTIONS โจ
--replayโ replays a session that was saved infile_name.agr๐ฌ--replay-all-used-contextโ replays using all the axioms and predicates saved in the.usedfiles in the current directory ๐
โจ PROFILING OPTIONS โจ
--cumulative-time-profilingโ records the time spent in called functions inside their callers โณ--profiling=DELAYโ activates the profiling module at the given frequency ๐ PressCtrl-Cto switch between different views, and pressCtrl + AltGr + \to exit ๐ฆ--profiling-plugin=PGNโ uses the given profiling plugin ๐
๐ DEBUG OPTIONS ๐
okay so these are the debug flags ๐ each one prints debug info for one specific part of the solver. heads up though, bestie: they are not for checking internal consistency, so don't expect them to double-check the solver's homework ๐
--dacโ turns on the debug flag for ac ๐--dadtโ turns on the debug flag for ADTs--darithโ turns on the debug flag for Arith (without fm) โจ--darraysโ turns on the debug flag for arrays--dbitvโ turns on the debug flag for bitv--dccโ turns on the debug flag for cc--dcombineโ turns on the debug flag for combine--dconstrโ turns on the debug flag for constructors--debug-interpretationโ turns on the debug flag for interpretation generation ๐ฎ--debug-unsat-coreโ replays the unsat-cores produced by--unsat-core. this one also implies--unsat-core, so you don't have to add it yourself ๐ซถ--dexplanationsโ turns on the debug flag for explanations--dfmโ turns on the debug flag for inequalities--dfpa=INT(absent=0) โ turns on the debug flag for floating-point ๐ธ--dgcโ prints some debug info about the GC's activity ๐๏ธ--diteโ turns on the debug flag for ite--dmatching=FLAG(absent=0) โ turns on the debug flag for E-matching.0is disabled,1is light, and2is full ๐ฆ--dsatโ turns on the debug flag for sat--dsplitโ turns on the debug flag for case-split analysis--dsumโ turns on the debug flag for Sum--dtriggersโ turns on the debug flag for triggers--dtypesโ turns on the debug flag for types--dtypingโ turns on the debug flag for typing (not the same as types, so don't mix them up ๐)--dufโ turns on the debug flag for uf--duseโ turns on the debug flag for use--dwarningsโ turns on the debug flag for warnings--rule=TR(absent=none) โTRis one ofparsing|typing|sat|cc|arith, and it prints the rule that got used on stderr ๐ฃ
๐ COMMON OPTIONS ๐
--help[=FMT](default=auto) โ shows this help in the formatFMT.FMThas to be one ofauto,pager,grofforplain. withauto, you getpagerorplainwhenever theTERMenv var isdumbor undefined ๐--versionโ shows the version info โจ
๐ช EXIT STATUS ๐ช
alt-ergo exits with:
0โ on success ๐1โ on default errors123โ on indiscriminate errors reported on standard error124โ on command line parsing errors125โ on unexpected internal errors (bugs) ๐142โ on timeout errors โฐ
๐ BUGS ๐
You can open an issue on: https://github.com/OCamlPro/alt-ergo/issues ๐ซถ
Or you can write to: alt-ergo@ocamlpro.com ๐
๐ AUTHORS ๐
โจ CURRENT AUTHORS โจ
- Sylvain Conchon
- Albin Coquereau
- Guillaume Bury
- Mattias Roux
๐ ORIGINAL AUTHORS ๐
- Sylvain Conchon
- Evelyne Contejean
- Mohamed Iguernlala
- Stephane Lescuyer
- Alain Mebsout
That's the whole page, bestie ๐ฆ Alt-Ergo 2.4.3-free, manual page ALT-ERGO(1), all wrapped up and slay ๐
๐ธ
๐ฆ where this page comes from
- fedora 44: alt-ergo 2.4.3-1.fc44 ยท CECILL-C
- ๐ girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms