Debugging flags - FStarLang/FStar GitHub Wiki
See Debugging FStar for explanation.
Updated Oct 2020. See also issue #2089.
1346: unification within tactics (do_unify)380: logical simplification in the normalizerbind: binding of effectful computations in typecheckerCheckedFiles: loading and writing of .checked files; does not need a matching--debugCoercions: insertion of type-directed coercions in typecheckerDep: dependency analysis; does not need a matching--debugED: typechecking of effect definitionsExports: something about internal letbindings?Extraction: extraction pipeline, including detailed info on the translation of terms into the backend languageExtractionReify: reification of effects on extractionExtractNorm: normalization of top-level letbindings before extractionFastImplicits: fast implicit typechecking featureGen: generalizationGenUniverses: universe generalizationImp: prints implicits on proofstate dumps in tactics (remove?)ImplicitTrace: prints messages every time an implicit is created during typechecking or unificationLayeredEffects,LayeredEffectsApp,LayeredEffectsEqns,LayeredEffectsTc: layered effectsLogTypes: prints the types of top-levels after checking themNBE,NBETop: debugging of NBE normalizerNorm: normalization, prints full trace of abstract machine, very verbose! See following onesNormCfg: when in addition toNorm, dumps the full machine's cfg on every step (even more verbose!)NormDelayed: prints a message when the normalizer reaches aTm_delayednode (remove? is this useful?)NormRebuild: likeNorm, but for the rebuild phase (join withNorm?)NormTop: prints a message on the entry and exit of every normalization call, but no steps; useful to find slow norm callsNormalize: affects the behaviour of--dump_moduleby normalizing before printing.NYC: not surePartialApp: partial applications during SMT encodingPatterns: typechecking of patternsPositivity: positivity analysis of inductivesPrimops: during normalization, print info about primitive operators (e.g.(+))print_normalized_terms: in normalizer, print results of norm requests (Pervasives.norm, etc)Range: print information, including position info, of top-level variables when they appear in a programRel,RelBench,RelCheck,RelDelta,EQ,ExplainRel: unification, see code for more detailsResolveImplicitsHook: triggering and handling of@@resolve_implicitsReturn: insertion of returns in WPsSimplification: simplification of guardsSMTEncoding: encoding pipeline, including a trace of the translationSMTEncodingReify: encoding of reifiable effectsSMTQuery: prints obligations before encoding them, and some information on the querying process itselfTac: high-level messages about tactic executionTacFail: prints a message when a tactic fails internally, even if the failure is handled!TacVerbose: more tactic information, and more information in proofstate dumpsTCDeclTime: print the time it takes to check each declTime: print how long it takes to encode queriesTwoPhases: info on 2-phase debugging, including what the elaborated definition looks likeUF: elimination (compression) of uvars after typecheckingUnfolding: in normalization, print when and why top-level variable names are unfolded to their definitions (or not unfolded), i.e. information about delta stepsUniverseOf: prints a message in a given case of theuniverse_ofauxiliary function, likely not useful for usersuniv_norm: normalization of universe levelsWPE: optimization of WPs in normalizer
PS. This can help in obtaining a list: sed -e '/Binary/d' -e 's/.*Options.Other "\(\S*\)".*/\1/' <(git grep "Options.Othe") | sort | uniq