afford unconditional presentation, notably export_theory and present_thy, notably for HTML + PDF presentation within PIDE;
typical timings for big theories in HOL-Analysis: Export.make_entry < 10ms, Document_Output.present_thy < 150ms;
(* :mode=isabelle-options: *)section "Document Preparation"option browser_info : bool = false -- "generate theory browser information"option document : string = "" (standard "true") -- "build PDF document (enabled for \"pdf\" or \"true\", disabled for \"\" or \"false\")"option document_output : string = "" (standard "output") -- "document output directory"option document_echo : bool = false -- "inform about document file names during session presentation"option document_variants : string = "document" -- "alternative document variants (separated by colons)"option document_tags : string = "" -- "default command tags (separated by commas)"option document_bibliography : bool = false -- "explicitly enable use of bibtex (default: according to presence of root.bib)"option document_build : string = "lualatex" (standard "build") -- "document build engine (e.g. build, lualatex, pdflatex)"option document_logo : string = "" (standard "_") -- "generate named instance of Isabelle logo (underscore means unnamed variant)"option document_heading_prefix : string = "isamarkup" (standard) -- "prefix for LaTeX macros generated from 'chapter', 'section' etc."option document_comment_latex : bool = false -- "use regular LaTeX version of comment.sty, instead of historic plain TeX version"option thy_output_display : bool = false -- "indicate output as multi-line display-style material"option thy_output_break : bool = false -- "control line breaks in non-display material"option thy_output_cartouche : bool = false -- "indicate if the output should be delimited as cartouche"option thy_output_quotes : bool = false -- "indicate if the output should be delimited via double quotes"option thy_output_margin : int = 76 -- "right margin / page width for printing of display material"option thy_output_indent : int = 0 -- "indentation for pretty printing of display material"option thy_output_source : bool = false -- "print original source text rather than internal representation"option thy_output_source_cartouche : bool = false -- "print original source text rather than internal representation, preserve cartouches"option thy_output_modes : string = "" -- "additional print modes for document output (separated by commas)"section "Prover Output"option show_types : bool = false -- "show type constraints when printing terms"option show_sorts : bool = false -- "show sort constraints when printing types"option show_brackets : bool = false -- "show extra brackets when printing terms/types"option show_question_marks : bool = true -- "show leading question mark of schematic variables"option show_consts : bool = false -- "show constants with types when printing proof state"option show_main_goal : bool = false -- "show main goal when printing proof state"option goals_limit : int = 10 -- "maximum number of subgoals to be printed"option show_states : bool = false -- "show toplevel states even if outside of interactive mode"option names_long : bool = false -- "show fully qualified names"option names_short : bool = false -- "show base names only"option names_unique : bool = true -- "show partially qualified names, as required for unique name resolution"option eta_contract : bool = true -- "print terms in eta-contracted form"option print_mode : string = "" -- "additional print modes for prover output (separated by commas)"section "Parallel Processing and Timing"public option threads : int = 0 -- "maximum number of worker threads for prover process (0 = hardware max.)"option threads_trace : int = 0 -- "level of tracing information for multithreading"option threads_stack_limit : real = 0.25 -- "maximum stack size for worker threads (in giga words, 0 = unlimited)"public option parallel_limit : int = 0 -- "approximative limit for parallel tasks (0 = unlimited)"public option parallel_print : bool = true -- "parallel and asynchronous printing of results"public option parallel_proofs : int = 1 -- "level of parallel proof checking: 0, 1, 2"option parallel_subproofs_threshold : real = 0.01 -- "lower bound of timing estimate for forked nested proofs (seconds)"option command_timing_threshold : real = 0.1 -- "default threshold for persistent command timing (seconds)"public option timeout_scale : real = 1.0 -- "scale factor for timeout in Isabelle/ML and session build"section "Detail of Proof Checking"option record_proofs : int = -1 -- "set level of proofterm recording: 0, 1, 2, negative means unchanged"option quick_and_dirty : bool = false -- "if true then some tools will OMIT some proofs"option skip_proofs : bool = false -- "skip over proofs (implicit 'sorry')"option strict_facts : bool = false -- "force lazy facts when defined in context"section "Global Session Parameters"option condition : string = "" -- "required environment variables for subsequent theories (separated by commas)"option timeout : real = 0 -- "timeout for session build job (seconds > 0)"option timeout_build : bool = true -- "observe timeout for session build"option process_output_limit : int = 100 -- "build process output limit (in million characters, 0 = unlimited)"option process_output_tail : int = 40 -- "build process output tail shown to user (in lines, 0 = unlimited)"option profiling : string = "" (standard "time") -- "ML profiling (possible values: time, time_thread, allocations)"option system_log : string = "" (standard "-") -- "output for system messages (log file or \"-\" for console progress)"option system_heaps : bool = false -- "store session heaps in $ISABELLE_HEAPS_SYSTEM, not $ISABELLE_HEAPS"section "ML System"option ML_print_depth : int = 20 -- "ML print depth for toplevel pretty-printing"public option ML_exception_trace : bool = false -- "ML exception trace for toplevel command execution"public option ML_exception_debugger : bool = false -- "ML debugger exception trace for toplevel command execution"public option ML_debugger : bool = false -- "ML debugger instrumentation for newly compiled code"public option ML_system_64 : bool = false -- "prefer native 64bit platform (change requires restart)"public option ML_system_apple : bool = true -- "prefer native Apple/ARM64 platform (change requires restart)"public option ML_process_policy : string = "" -- "ML process command prefix (process policy)"section "PIDE Build"option pide_reports : bool = true -- "report PIDE markup (in ML)"option build_pide_reports : bool = true -- "report PIDE markup (in batch build)"section "Editor Session"public option editor_load_delay : real = 0.5 -- "delay for file load operations (new buffers etc.)"public option editor_input_delay : real = 0.2 -- "delay for user input (text edits, cursor movement etc.)"public option editor_generated_input_delay : real = 1.0 -- "delay for machine-generated input that may outperform user edits"public option editor_output_delay : real = 0.1 -- "delay for prover output (markup, common messages etc.)"public option editor_consolidate_delay : real = 2.0 -- "delay to consolidate status of command evaluation (execution forks)"public option editor_prune_delay : real = 15 -- "delay to prune history (delete old versions)"option editor_prune_size : int = 0 -- "retained size of pruned history (delete old versions)"public option editor_update_delay : real = 0.5 -- "delay for physical GUI updates"public option editor_reparse_limit : int = 10000 -- "maximum amount of reparsed text outside perspective"public option editor_tracing_messages : int = 1000 -- "initial number of tracing messages for each command transaction (0: unbounded)"public option editor_chart_delay : real = 3.0 -- "delay for chart repainting"public option editor_continuous_checking : bool = true -- "continuous checking of proof document (visible and required parts)"public option editor_output_state : bool = false -- "implicit output of proof state"option editor_execution_delay : real = 0.02 -- "delay for start of execution process after document update (seconds)"option editor_syslog_limit : int = 100 -- "maximum amount of buffered syslog messages"section "Headless Session"option headless_consolidate_delay : real = 15 -- "delay to consolidate status of command evaluation (execution forks)"option headless_prune_delay : real = 60 -- "delay to prune history (delete old versions)"option headless_check_delay : real = 0.5 -- "delay for theory status check during PIDE processing (seconds)"option headless_check_limit : int = 0 -- "maximum number of theory status checks (0 = unlimited)"option headless_nodes_status_delay : real = -1 -- "delay for overall nodes status check during PIDE processing (seconds, disabled for < 0)"option headless_watchdog_timeout : real = 600 -- "watchdog timeout for PIDE processing of broken theories (seconds, 0 = disabled)"option headless_commit_cleanup_delay : real = 60 -- "delay for cleanup of already imported theories (seconds, 0 = disabled)"option headless_load_limit : real = 5.0 -- "limit in MB for loaded theory files (0 = unlimited)"section "Miscellaneous Tools"public option find_theorems_limit : int = 40 -- "limit of displayed results"public option find_theorems_tactic_limit : int = 5 -- "limit of tactic search for 'solves' criterion"section "Completion"public option completion_limit : int = 40 -- "limit for completion within the formal context"public option completion_path_ignore : string = "*~:*.marks:*.orig:*.rej:.DS_Store" -- "glob patterns to ignore in file-system path completion (separated by colons)"section "Spell Checker"public option spell_checker : bool = true -- "enable spell-checker for prose words within document text, comments etc."public option spell_checker_dictionary : string = "en" -- "spell-checker dictionary name"public option spell_checker_include : string = "words,comment,comment1,comment2,comment3,ML_comment,SML_comment" -- "included markup elements for spell-checker (separated by commas)"public option spell_checker_exclude : string = "document_marker,antiquoted,raw_text" -- "excluded markup elements for spell-checker (separated by commas)"section "Secure Shell (OpenSSH)"public option ssh_batch_mode : bool = true -- "enable SSH batch mode (no user interaction)"public option ssh_multiplexing : bool = true -- "enable multiplexing of SSH sessions (ignored on Windows)"public option ssh_compression : bool = true -- "enable SSH compression"public option ssh_alive_interval : real = 30 -- "time interval to keep SSH server connection alive (seconds, ignore value < 0)"public option ssh_alive_count_max : int = 3 -- "maximum number of messages to keep SSH server connection alive (ignore value < 0)"section "Phabricator"option phabricator_version_arcanist : string = "4f70fcffa8a5393e210d64f237ffdaa256256d6a" -- "repository version for arcanist"option phabricator_version_phabricator : string = "193798385bd3a7f72dca255e44f8112f4f8fc155" -- "repository version for phabricator"section "Theory Export"option export_theory : bool = false -- "export theory content to Isabelle/Scala"option export_standard_proofs : bool = false -- "export standardized proof terms to Isabelle/Scala (not scalable)"option export_proofs : bool = false -- "export proof terms to Isabelle/Scala"option prune_proofs : bool = false -- "prune proof terms after export (do not store in Isabelle/ML)"section "Theory update"option update_inner_syntax_cartouches : bool = false -- "update inner syntax (types, terms, etc.) to use cartouches"option update_mixfix_cartouches : bool = false -- "update mixfix templates to use cartouches instead of double quotes"option update_control_cartouches : bool = false -- "update antiquotations to use control symbol with cartouche argument"option update_path_cartouches : bool = false -- "update file-system paths to use cartouches"section "Build Database"option build_database_server : bool = falseoption build_database_user : string = ""option build_database_password : string = ""option build_database_name : string = ""option build_database_host : string = ""option build_database_port : int = 0option build_database_ssh_host : string = ""option build_database_ssh_user : string = ""option build_database_ssh_port : int = 0section "Build Log Database"option build_log_database_user : string = ""option build_log_database_password : string = ""option build_log_database_name : string = ""option build_log_database_host : string = ""option build_log_database_port : int = 0option build_log_ssh_host : string = ""option build_log_ssh_user : string = ""option build_log_ssh_port : int = 0option build_log_history : int = 30 -- "length of relevant history (in days)"option build_log_transaction_size : int = 1 -- "number of log files for each db update"section "Isabelle/Scala/ML system channel"option system_channel_address : string = ""option system_channel_password : string = ""section "Bash process execution server"option bash_process_debugging : bool = falseoption bash_process_address : string = ""option bash_process_password : string = ""