src/Pure/ROOT.ML
author wenzelm
Thu Aug 15 16:02:47 2019 +0200 (9 months ago)
changeset 70533 031620901fcd
parent 70521 9ddd66d53130
child 70556 038ed9b76c2b
permissions -rw-r--r--
support for (fully reconstructed) proof terms in Scala;
proper cache_typs;
wenzelm@67588
     1
(*  Title:      Pure/ROOT.ML
wenzelm@67588
     2
    Author:     Makarius
wenzelm@67588
     3
wenzelm@67588
     4
Main entry point for the Isabelle/Pure bootstrap process.
wenzelm@67588
     5
wenzelm@67588
     6
Note: When this file is open in the Prover IDE, the ML files of
wenzelm@67588
     7
Isabelle/Pure can be explored interactively. This is a separate copy of
wenzelm@67588
     8
Pure within Pure: it does not affect the running logic session.
wenzelm@67588
     9
*)
wenzelm@67588
    10
wenzelm@62912
    11
chapter "Isabelle/Pure bootstrap";
wenzelm@62508
    12
wenzelm@62902
    13
ML_file "ML/ml_name_space.ML";
wenzelm@62883
    14
wenzelm@62883
    15
wenzelm@62912
    16
section "Bootstrap phase 0: Poly/ML setup";
wenzelm@62508
    17
wenzelm@67205
    18
ML_file "ML/ml_init.ML";
wenzelm@62902
    19
ML_file "ML/ml_system.ML";
wenzelm@62902
    20
ML_file "System/distribution.ML";
wenzelm@62508
    21
wenzelm@62918
    22
ML_file "General/basics.ML";
wenzelm@63932
    23
ML_file "General/symbol_explode.ML";
wenzelm@62508
    24
wenzelm@62902
    25
ML_file "Concurrent/multithreading.ML";
wenzelm@62902
    26
ML_file "Concurrent/unsynchronized.ML";
wenzelm@62918
    27
ML_file "Concurrent/synchronized.ML";
wenzelm@62918
    28
ML_file "Concurrent/counter.ML";
wenzelm@62508
    29
wenzelm@62902
    30
ML_file "ML/ml_heap.ML";
wenzelm@62902
    31
ML_file "ML/ml_profiling.ML";
wenzelm@62902
    32
ML_file "ML/ml_print_depth0.ML";
wenzelm@62902
    33
ML_file "ML/ml_pretty.ML";
wenzelm@62902
    34
ML_file "ML/ml_compiler0.ML";
wenzelm@62508
    35
wenzelm@62508
    36
wenzelm@62912
    37
section "Bootstrap phase 1: towards ML within position context";
wenzelm@62508
    38
wenzelm@62912
    39
subsection "Library of general tools";
wenzelm@31432
    40
wenzelm@62902
    41
ML_file "library.ML";
wenzelm@62902
    42
ML_file "General/print_mode.ML";
wenzelm@62902
    43
ML_file "General/alist.ML";
wenzelm@62902
    44
ML_file "General/table.ML";
wenzelm@43684
    45
wenzelm@62902
    46
ML_file "General/random.ML";
wenzelm@63806
    47
ML_file "General/value.ML";
wenzelm@62902
    48
ML_file "General/properties.ML";
wenzelm@62902
    49
ML_file "General/output.ML";
wenzelm@62902
    50
ML_file "PIDE/markup.ML";
wenzelm@69208
    51
ML_file "General/utf8.ML";
wenzelm@62902
    52
ML_file "General/scan.ML";
wenzelm@62902
    53
ML_file "General/source.ML";
wenzelm@62902
    54
ML_file "General/symbol.ML";
wenzelm@62902
    55
ML_file "General/position.ML";
wenzelm@62902
    56
ML_file "General/symbol_pos.ML";
wenzelm@62902
    57
ML_file "General/input.ML";
wenzelm@67425
    58
ML_file "General/comment.ML";
wenzelm@62902
    59
ML_file "General/antiquote.ML";
wenzelm@62902
    60
ML_file "ML/ml_lex.ML";
wenzelm@62902
    61
ML_file "ML/ml_compiler1.ML";
wenzelm@56288
    62
wenzelm@59054
    63
wenzelm@62912
    64
section "Bootstrap phase 2: towards ML within Isar context";
wenzelm@56288
    65
wenzelm@62912
    66
subsection "Library of general tools";
wenzelm@56288
    67
wenzelm@62902
    68
ML_file "General/integer.ML";
wenzelm@62902
    69
ML_file "General/stack.ML";
wenzelm@62902
    70
ML_file "General/queue.ML";
wenzelm@62902
    71
ML_file "General/heap.ML";
wenzelm@62902
    72
ML_file "General/same.ML";
wenzelm@62902
    73
ML_file "General/ord_list.ML";
wenzelm@62902
    74
ML_file "General/balanced_tree.ML";
wenzelm@62902
    75
ML_file "General/linear_set.ML";
wenzelm@62902
    76
ML_file "General/buffer.ML";
wenzelm@62902
    77
ML_file "General/pretty.ML";
wenzelm@63209
    78
ML_file "General/rat.ML";
wenzelm@62902
    79
ML_file "PIDE/xml.ML";
wenzelm@62902
    80
ML_file "General/path.ML";
wenzelm@62902
    81
ML_file "General/url.ML";
wenzelm@64304
    82
ML_file "System/bash_syntax.ML";
wenzelm@62902
    83
ML_file "General/file.ML";
wenzelm@62902
    84
ML_file "General/long_name.ML";
wenzelm@62902
    85
ML_file "General/binding.ML";
wenzelm@62902
    86
ML_file "General/socket_io.ML";
wenzelm@62902
    87
ML_file "General/seq.ML";
wenzelm@62902
    88
ML_file "General/timing.ML";
wenzelm@62902
    89
ML_file "General/sha1.ML";
wenzelm@35628
    90
wenzelm@69448
    91
ML_file "PIDE/byte_message.ML";
wenzelm@62902
    92
ML_file "PIDE/yxml.ML";
wenzelm@62902
    93
ML_file "PIDE/document_id.ML";
wenzelm@44698
    94
wenzelm@62902
    95
ML_file "General/change_table.ML";
wenzelm@62902
    96
ML_file "General/graph.ML";
wenzelm@49560
    97
wenzelm@60911
    98
wenzelm@62912
    99
subsection "Fundamental structures";
wenzelm@60911
   100
wenzelm@62902
   101
ML_file "name.ML";
wenzelm@62902
   102
ML_file "term.ML";
wenzelm@62902
   103
ML_file "context.ML";
wenzelm@62902
   104
ML_file "context_position.ML";
wenzelm@62902
   105
ML_file "System/options.ML";
wenzelm@62902
   106
ML_file "config.ML";
wenzelm@70364
   107
ML_file "soft_type_system.ML";
wenzelm@51947
   108
wenzelm@31432
   109
wenzelm@62912
   110
subsection "Concurrency within the ML runtime";
wenzelm@28120
   111
wenzelm@62902
   112
ML_file "ML/exn_properties.ML";
wenzelm@50911
   113
wenzelm@62902
   114
ML_file "ML/ml_statistics.ML";
wenzelm@50255
   115
wenzelm@62902
   116
ML_file "Concurrent/thread_data_virtual.ML";
wenzelm@62902
   117
ML_file "Concurrent/standard_thread.ML";
wenzelm@62902
   118
ML_file "Concurrent/single_assignment.ML";
wenzelm@59054
   119
wenzelm@62902
   120
ML_file "Concurrent/par_exn.ML";
wenzelm@62902
   121
ML_file "Concurrent/task_queue.ML";
wenzelm@62902
   122
ML_file "Concurrent/future.ML";
wenzelm@62902
   123
ML_file "Concurrent/event_timer.ML";
wenzelm@62902
   124
ML_file "Concurrent/timeout.ML";
wenzelm@62902
   125
ML_file "Concurrent/lazy.ML";
wenzelm@62902
   126
ML_file "Concurrent/par_list.ML";
wenzelm@31432
   127
wenzelm@62902
   128
ML_file "Concurrent/mailbox.ML";
wenzelm@62902
   129
ML_file "Concurrent/cache.ML";
wenzelm@32840
   130
wenzelm@62902
   131
ML_file "PIDE/active.ML";
wenzelm@70396
   132
ML_file "Thy/export.ML";
wenzelm@50500
   133
wenzelm@31432
   134
wenzelm@62912
   135
subsection "Inner syntax";
wenzelm@31432
   136
wenzelm@62902
   137
ML_file "Syntax/type_annotation.ML";
wenzelm@62902
   138
ML_file "Syntax/term_position.ML";
wenzelm@62902
   139
ML_file "Syntax/lexicon.ML";
wenzelm@62902
   140
ML_file "Syntax/ast.ML";
wenzelm@62902
   141
ML_file "Syntax/syntax_ext.ML";
wenzelm@62902
   142
ML_file "Syntax/parser.ML";
wenzelm@62902
   143
ML_file "Syntax/syntax_trans.ML";
wenzelm@62902
   144
ML_file "Syntax/mixfix.ML";
wenzelm@62902
   145
ML_file "Syntax/printer.ML";
wenzelm@62902
   146
ML_file "Syntax/syntax.ML";
wenzelm@22679
   147
wenzelm@31432
   148
wenzelm@62912
   149
subsection "Core of tactical proof system";
wenzelm@31432
   150
wenzelm@62902
   151
ML_file "term_ord.ML";
wenzelm@62902
   152
ML_file "term_subst.ML";
wenzelm@62902
   153
ML_file "term_xml.ML";
wenzelm@62902
   154
ML_file "General/completion.ML";
wenzelm@62902
   155
ML_file "General/name_space.ML";
wenzelm@62902
   156
ML_file "sorts.ML";
wenzelm@62902
   157
ML_file "type.ML";
wenzelm@62902
   158
ML_file "logic.ML";
wenzelm@62902
   159
ML_file "Syntax/simple_syntax.ML";
wenzelm@62902
   160
ML_file "net.ML";
wenzelm@62902
   161
ML_file "item_net.ML";
wenzelm@62902
   162
ML_file "envir.ML";
wenzelm@62902
   163
ML_file "consts.ML";
wenzelm@62902
   164
ML_file "primitive_defs.ML";
wenzelm@62902
   165
ML_file "sign.ML";
wenzelm@62902
   166
ML_file "defs.ML";
wenzelm@62902
   167
ML_file "term_sharing.ML";
wenzelm@62902
   168
ML_file "pattern.ML";
wenzelm@62902
   169
ML_file "unify.ML";
wenzelm@62902
   170
ML_file "theory.ML";
wenzelm@62902
   171
ML_file "proofterm.ML";
wenzelm@62902
   172
ML_file "thm.ML";
wenzelm@62902
   173
ML_file "more_pattern.ML";
wenzelm@62902
   174
ML_file "more_unify.ML";
wenzelm@62902
   175
ML_file "more_thm.ML";
wenzelm@70443
   176
wenzelm@62902
   177
ML_file "facts.ML";
wenzelm@62902
   178
ML_file "global_theory.ML";
wenzelm@62902
   179
ML_file "pure_thy.ML";
wenzelm@62902
   180
ML_file "drule.ML";
wenzelm@62902
   181
ML_file "morphism.ML";
wenzelm@62902
   182
ML_file "variable.ML";
wenzelm@62902
   183
ML_file "conv.ML";
wenzelm@62902
   184
ML_file "goal_display.ML";
wenzelm@62902
   185
ML_file "tactical.ML";
wenzelm@62902
   186
ML_file "search.ML";
wenzelm@62902
   187
ML_file "tactic.ML";
wenzelm@62902
   188
ML_file "raw_simplifier.ML";
wenzelm@62902
   189
ML_file "conjunction.ML";
wenzelm@62902
   190
ML_file "assumption.ML";
clasohm@0
   191
wenzelm@31432
   192
wenzelm@62912
   193
subsection "Isar -- Intelligible Semi-Automated Reasoning";
wenzelm@31432
   194
wenzelm@56303
   195
(*ML support and global execution*)
wenzelm@62902
   196
ML_file "ML/ml_syntax.ML";
wenzelm@62902
   197
ML_file "ML/ml_env.ML";
wenzelm@62902
   198
ML_file "ML/ml_options.ML";
wenzelm@62902
   199
ML_file "ML/ml_print_depth.ML";
wenzelm@62902
   200
ML_file_no_debug "ML/exn_debugger.ML";
wenzelm@62902
   201
ML_file_no_debug "Isar/runtime.ML";
wenzelm@62902
   202
ML_file "PIDE/execution.ML";
wenzelm@62902
   203
ML_file "ML/ml_compiler.ML";
wenzelm@49041
   204
wenzelm@62902
   205
ML_file "skip_proof.ML";
wenzelm@62902
   206
ML_file "goal.ML";
wenzelm@49041
   207
wenzelm@63639
   208
(*outer syntax*)
wenzelm@63639
   209
ML_file "Isar/keyword.ML";
wenzelm@63639
   210
ML_file "Isar/token.ML";
wenzelm@63639
   211
ML_file "Isar/parse.ML";
wenzelm@69876
   212
ML_file "Thy/document_source.ML";
wenzelm@63639
   213
ML_file "Thy/thy_header.ML";
wenzelm@69887
   214
ML_file "Thy/document_marker.ML";
wenzelm@63639
   215
wenzelm@31432
   216
(*proof context*)
wenzelm@62902
   217
ML_file "Isar/object_logic.ML";
wenzelm@62902
   218
ML_file "Isar/rule_cases.ML";
wenzelm@62902
   219
ML_file "Isar/auto_bind.ML";
wenzelm@62902
   220
ML_file "type_infer.ML";
wenzelm@62902
   221
ML_file "Syntax/local_syntax.ML";
wenzelm@62902
   222
ML_file "Isar/proof_context.ML";
wenzelm@62902
   223
ML_file "type_infer_context.ML";
wenzelm@62902
   224
ML_file "Syntax/syntax_phases.ML";
wenzelm@62902
   225
ML_file "Isar/args.ML";
wenzelm@31432
   226
wenzelm@57926
   227
(*theory specifications*)
wenzelm@63639
   228
ML_file "Isar/local_defs.ML";
wenzelm@62902
   229
ML_file "Isar/local_theory.ML";
wenzelm@63090
   230
ML_file "Isar/entity.ML";
wenzelm@62902
   231
ML_file "PIDE/command_span.ML";
wenzelm@68839
   232
ML_file "Thy/thy_element.ML";
wenzelm@62902
   233
ML_file "Thy/markdown.ML";
wenzelm@62902
   234
ML_file "Thy/html.ML";
wenzelm@62902
   235
ML_file "Thy/latex.ML";
wenzelm@31432
   236
wenzelm@56203
   237
(*ML with context and antiquotations*)
wenzelm@62902
   238
ML_file "ML/ml_context.ML";
wenzelm@62902
   239
ML_file "ML/ml_antiquotation.ML";
wenzelm@62902
   240
ML_file "ML/ml_compiler2.ML";
wenzelm@56434
   241
wenzelm@56288
   242
wenzelm@62912
   243
section "Bootstrap phase 3: towards theory Pure and final ML toplevel setup";
wenzelm@56203
   244
wenzelm@31432
   245
(*basic proof engine*)
wenzelm@70521
   246
ML_file "par_tactical.ML";
wenzelm@70520
   247
ML_file "context_tactic.ML";
wenzelm@62902
   248
ML_file "Isar/proof_display.ML";
wenzelm@62902
   249
ML_file "Isar/attrib.ML";
wenzelm@62902
   250
ML_file "Isar/context_rules.ML";
wenzelm@62902
   251
ML_file "Isar/method.ML";
wenzelm@62902
   252
ML_file "Isar/proof.ML";
wenzelm@62902
   253
ML_file "Isar/element.ML";
wenzelm@62902
   254
ML_file "Isar/obtain.ML";
wenzelm@62902
   255
ML_file "Isar/subgoal.ML";
wenzelm@62902
   256
ML_file "Isar/calculation.ML";
wenzelm@31432
   257
wenzelm@31432
   258
(*local theories and targets*)
wenzelm@62902
   259
ML_file "Isar/locale.ML";
wenzelm@62902
   260
ML_file "Isar/generic_target.ML";
wenzelm@62902
   261
ML_file "Isar/overloading.ML";
wenzelm@62902
   262
ML_file "axclass.ML";
wenzelm@62902
   263
ML_file "Isar/class.ML";
wenzelm@62902
   264
ML_file "Isar/named_target.ML";
wenzelm@62902
   265
ML_file "Isar/expression.ML";
wenzelm@62902
   266
ML_file "Isar/interpretation.ML";
wenzelm@62902
   267
ML_file "Isar/class_declaration.ML";
wenzelm@62902
   268
ML_file "Isar/bundle.ML";
wenzelm@62902
   269
ML_file "Isar/experiment.ML";
wenzelm@31432
   270
wenzelm@62902
   271
ML_file "simplifier.ML";
wenzelm@62902
   272
ML_file "Tools/plugin.ML";
wenzelm@31432
   273
wenzelm@31432
   274
(*executable theory content*)
wenzelm@62902
   275
ML_file "Isar/code.ML";
wenzelm@31432
   276
wenzelm@31432
   277
(*specifications*)
wenzelm@62902
   278
ML_file "Isar/spec_rules.ML";
wenzelm@62902
   279
ML_file "Isar/specification.ML";
wenzelm@63064
   280
ML_file "Isar/parse_spec.ML";
wenzelm@62902
   281
ML_file "Isar/typedecl.ML";
wenzelm@31432
   282
wenzelm@31432
   283
(*toplevel transactions*)
wenzelm@62902
   284
ML_file "Isar/proof_node.ML";
wenzelm@62902
   285
ML_file "Isar/toplevel.ML";
wenzelm@31432
   286
wenzelm@56206
   287
(*proof term operations*)
wenzelm@62902
   288
ML_file "Proof/proof_syntax.ML";
wenzelm@62902
   289
ML_file "Proof/proof_rewrite_rules.ML";
wenzelm@62902
   290
ML_file "Proof/proof_checker.ML";
wenzelm@62902
   291
ML_file "Proof/extraction.ML";
wenzelm@56206
   292
wenzelm@62584
   293
(*Isabelle system*)
wenzelm@62911
   294
ML_file "System/bash.ML";
wenzelm@62902
   295
ML_file "System/isabelle_system.ML";
wenzelm@62584
   296
wenzelm@62845
   297
wenzelm@38271
   298
(*theory documents*)
wenzelm@62902
   299
ML_file "Thy/term_style.ML";
wenzelm@62902
   300
ML_file "Isar/outer_syntax.ML";
wenzelm@67138
   301
ML_file "ML/ml_antiquotations.ML";
wenzelm@67386
   302
ML_file "Thy/document_antiquotation.ML";
wenzelm@62902
   303
ML_file "Thy/thy_output.ML";
wenzelm@62902
   304
ML_file "Thy/document_antiquotations.ML";
wenzelm@62902
   305
ML_file "General/graph_display.ML";
wenzelm@62902
   306
ML_file "pure_syn.ML";
wenzelm@62902
   307
ML_file "PIDE/command.ML";
wenzelm@62902
   308
ML_file "PIDE/query_operation.ML";
wenzelm@62902
   309
ML_file "PIDE/resources.ML";
wenzelm@65505
   310
ML_file "Thy/present.ML";
wenzelm@62902
   311
ML_file "Thy/thy_info.ML";
wenzelm@68154
   312
ML_file "Thy/export_theory.ML";
wenzelm@67215
   313
ML_file "Thy/sessions.ML";
wenzelm@62902
   314
ML_file "PIDE/session.ML";
wenzelm@62902
   315
ML_file "PIDE/protocol_message.ML";
wenzelm@62902
   316
ML_file "PIDE/document.ML";
wenzelm@31432
   317
wenzelm@31432
   318
(*theory and proof operations*)
wenzelm@62902
   319
ML_file "Isar/isar_cmd.ML";
wenzelm@31432
   320
wenzelm@31432
   321
wenzelm@62912
   322
subsection "Isabelle/Isar system";
wenzelm@31432
   323
wenzelm@62902
   324
ML_file "System/command_line.ML";
wenzelm@62902
   325
ML_file "System/message_channel.ML";
wenzelm@62902
   326
ML_file "System/isabelle_process.ML";
wenzelm@62902
   327
ML_file "System/invoke_scala.ML";
wenzelm@67275
   328
ML_file "Thy/bibtex.ML";
wenzelm@62902
   329
ML_file "PIDE/protocol.ML";
wenzelm@62930
   330
ML_file "General/output_primitives_virtual.ML";
wenzelm@30173
   331
wenzelm@31432
   332
wenzelm@62912
   333
subsection "Miscellaneous tools and packages for Pure Isabelle";
wenzelm@31432
   334
wenzelm@62902
   335
ML_file "ML/ml_pp.ML";
wenzelm@62902
   336
ML_file "ML/ml_thms.ML";
wenzelm@62902
   337
ML_file "ML/ml_file.ML";
wenzelm@62849
   338
wenzelm@62902
   339
ML_file "Tools/build.ML";
wenzelm@62902
   340
ML_file "Tools/named_thms.ML";
wenzelm@62902
   341
ML_file "Tools/print_operation.ML";
wenzelm@62902
   342
ML_file "Tools/rail.ML";
wenzelm@62902
   343
ML_file "Tools/rule_insts.ML";
wenzelm@62902
   344
ML_file "Tools/thm_deps.ML";
wenzelm@62902
   345
ML_file "Tools/thy_deps.ML";
wenzelm@62902
   346
ML_file "Tools/class_deps.ML";
wenzelm@62902
   347
ML_file "Tools/find_theorems.ML";
wenzelm@62902
   348
ML_file "Tools/find_consts.ML";
wenzelm@62902
   349
ML_file "Tools/simplifier_trace.ML";
wenzelm@62902
   350
ML_file_no_debug "Tools/debugger.ML";
wenzelm@62902
   351
ML_file "Tools/named_theorems.ML";
wenzelm@62902
   352
ML_file "Tools/jedit.ML";
wenzelm@69209
   353
ML_file "Tools/ghc.ML";
wenzelm@69383
   354
ML_file "Tools/generated_files.ML"