diff --git a/src/main/scala/leon/Main.scala b/src/main/scala/leon/Main.scala index 3a8cb39df090fcb5ca3d3d902bedf6a52557026b..3e848994835d9e8bc6a4506576ede13439c0664b 100644 --- a/src/main/scala/leon/Main.scala +++ b/src/main/scala/leon/Main.scala @@ -44,15 +44,15 @@ object Main { val description = "Selection of Leon functionality. Default: verify" val optEval = LeonStringOptionDef("eval", "Evaluate ground functions through code generation or evaluation (default: evaluation)", "default", "[code|default]") - val optTermination = LeonFlagOptionDef("termination", "Check program termination. Can be used along --verify", false) - val optRepair = LeonFlagOptionDef("repair", "Repair selected functions", false) - val optSynthesis = LeonFlagOptionDef("synthesis", "Partial synthesis of choose() constructs", false) - val optIsabelle = LeonFlagOptionDef("isabelle", "Run Isabelle verification", false) - val optNoop = LeonFlagOptionDef("noop", "No operation performed, just output program", false) - val optVerify = LeonFlagOptionDef("verify", "Verify function contracts", false) - val optHelp = LeonFlagOptionDef("help", "Show help message", false) - val optInstrument = LeonFlagOptionDef("instrument", "Instrument the code for inferring time/depth/stack bounds", false) - val optInferInv = LeonFlagOptionDef("inferInv", "Infer invariants from (instrumented) the code", false) + val optTermination = LeonFlagOptionDef("termination", "Check program termination. Can be used along --verify", false) + val optRepair = LeonFlagOptionDef("repair", "Repair selected functions", false) + val optSynthesis = LeonFlagOptionDef("synthesis", "Partial synthesis of choose() constructs", false) + val optIsabelle = LeonFlagOptionDef("isabelle", "Run Isabelle verification", false) + val optNoop = LeonFlagOptionDef("noop", "No operation performed, just output program", false) + val optVerify = LeonFlagOptionDef("verify", "Verify function contracts", false) + val optHelp = LeonFlagOptionDef("help", "Show help message", false) + val optInstrument = LeonFlagOptionDef("instrument", "Instrument the code for inferring time/depth/stack bounds", false) + val optInferInv = LeonFlagOptionDef("inferInv", "Infer invariants from (instrumented) the code", false) override val definedOptions: Set[LeonOptionDef[Any]] = Set(optTermination, optRepair, optSynthesis, optIsabelle, optNoop, optHelp, optEval, optVerify, optInstrument, optInferInv) @@ -74,7 +74,7 @@ object Main { } reporter.info("") - reporter.info("Additional options, by component:") + reporter.title("Additional options, by component:") for (c <- (allComponents - MainComponent - SharedOptions).toSeq.sortBy(_.name) if c.definedOptions.nonEmpty) { reporter.info("") diff --git a/src/main/scala/leon/solvers/isabelle/Component.scala b/src/main/scala/leon/solvers/isabelle/Component.scala index cf8db26a5d5516222665c2769a005b2eeea74f2e..3b75a8c64fb7a68db86fc30456a53d8df8e2626d 100644 --- a/src/main/scala/leon/solvers/isabelle/Component.scala +++ b/src/main/scala/leon/solvers/isabelle/Component.scala @@ -10,7 +10,7 @@ import leon._ object Component extends LeonComponent { - val name = "isabelle" + val name = "Isabelle" val description = "Isabelle solver" val leonBase = diff --git a/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Solver.scala b/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Solver.scala index dfcfbcc3fffa1cc9ae190b169ab1f34ad1bf4310..dc267825c8356451944b5fb6b7f9de5d55504232 100644 --- a/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Solver.scala +++ b/src/main/scala/leon/solvers/smtlib/SMTLIBCVC4Solver.scala @@ -29,9 +29,9 @@ class SMTLIBCVC4Solver(context: LeonContext, program: Program) extends SMTLIBSol } object SMTLIBCVC4Component extends LeonComponent { - val name = "cvc4 solver" + val name = "CVC4 solver" - val description = "Solver invoked when --solvers=smt-cvc4" + val description = "Solver invoked with --solvers=smt-cvc4" val optCVC4Options = new LeonOptionDef[Set[String]] { val name = "solver:cvc4" diff --git a/src/sphinx/options.rst b/src/sphinx/options.rst index c5495f40a99086a3accddd87a7f74fc2769a99a1..5648b042c47f3a252672d698d496a2b3309221a8 100644 --- a/src/sphinx/options.rst +++ b/src/sphinx/options.rst @@ -18,7 +18,7 @@ Choosing which Leon feature to use ---------------------------------- The first group of options determine which feature of Leon will be used. -These options are mutually exclusive. By default, ``--verify`` is chosen. +These options are mutually exclusive (except when noted). By default, ``--verify`` is chosen. * ``--eval`` @@ -62,7 +62,7 @@ These options are mutually exclusive. By default, ``--verify`` is chosen. Additional top-level options ---------------------------- -These options are available by all Leon components: +These options are available to all Leon components: * ``--debug=d1,d2,...`` @@ -197,49 +197,19 @@ These options are available by all Leon components: Support for additional language constructs described in :ref:`xlang`. These constructs are desugared into :ref:`purescala` before other operations. -Invariant Inference -------------------- - -These options are to be used in conjuction with ``--inferInv`` and ``--instrument``. - -* ``--cegis`` - - Use cegis instead of farkas - -* ``--disableInfer`` - - Disable automatic inference of auxiliary invariants - -* ``--fullunroll`` - - Unroll all calls in every unroll step - -* ``--inferTemp`` - - Infer templates by enumeration - -* ``--minbounds`` - - Tighten the inferred time bounds - -* ``--stats-suffix=s`` - - Specifies the suffix of the statistics file - -* ``--usereals`` - - Interpret the input program as a program over real numbers - -* ``--wholeprogram`` +Additional Options (by component) +--------------------------------- - Perform a non-modular whole program analysis +The following options relate to specific components in Leon. Bear in mind +that related components might still use these options, e.g. repair will use +synthesis options and verification options. -* ``--withmult`` +Verification +************ - Do not convert multiplication into a recursive function inside verification conditions +* ``--parallel`` -Additional Options (by component) ---------------------------------- + Check verification conditions in parallel. File Output *********** @@ -259,8 +229,6 @@ Code Extraction Synthesis ********* -These options are also used by repair during the synthesis stage. - * ``--cegis:opttimeout`` Consider a time-out of CE-search as untrusted solution. @@ -366,3 +334,45 @@ Isabelle library when verifiying a Leon source file. Keeping it enabled prevents unsound proofs when postconditions or mappings in the library are wrong. When disabled, a warning is printed. + +Invariant Inference +******************* + +These options are to be used in conjunction with ``--inferInv`` and ``--instrument``. + +* ``--cegis`` + + Use cegis instead of farkas + +* ``--disableInfer`` + + Disable automatic inference of auxiliary invariants + +* ``--fullunroll`` + + Unroll all calls in every unroll step + +* ``--inferTemp`` + + Infer templates by enumeration + +* ``--minbounds`` + + Tighten the inferred time bounds + +* ``--stats-suffix=s`` + + Specifies the suffix of the statistics file + +* ``--usereals`` + + Interpret the input program as a program over real numbers + +* ``--wholeprogram`` + + Perform a non-modular whole program analysis + +* ``--withmult`` + + Do not convert multiplication into a recursive function inside verification conditions +