src/Pure/ROOT.ML
author lcp
Tue, 28 Feb 1995 10:50:37 +0100
changeset 917 bd26f536e1fe
parent 913 8aaa8c5a567e
child 922 196ca0973a6d
permissions -rw-r--r--
Re-organised to perform the tests independently. Now test is defined in terms of separate targets IMP, ex, etc. If ISABELLECOMP is set wrongly then "exit 1" causes the Make to fail. Defines the macro "LOGIC" to refer to the right command for running the object-logic. Uses "suffix substitution" to shorten macro definitions.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
     1
(*  Title:      Pure/ROOT.ML
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     2
    ID:         $Id$
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
     3
    Author:     Lawrence C Paulson, Cambridge University Computer Laboratory
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     4
    Copyright   1993  University of Cambridge
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     5
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
     6
Root file for Pure Isabelle: all modules in proper order for loading.
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
     7
Loads pure Isabelle into an empty database (see also Makefile).
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
     8
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
     9
TO DO:
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    10
instantiation of theorems can lead to inconsistent sorting of type vars if
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    11
'a::S is already present and 'a::T is introduced.
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    12
*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    13
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    14
val banner = "Pure Isabelle";
913
8aaa8c5a567e Updated the "version" variable (which was never done for
lcp
parents: 635
diff changeset
    15
val version = "Isabelle-94 revision 3: March 95";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    16
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    17
print_depth 1;
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    18
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    19
use "library.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    20
use "term.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    21
use "symtab.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    22
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    23
structure Symtab = SymtabFun();
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    24
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    25
(*Syntax module*)
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    26
cd "Syntax";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    27
use "ROOT.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    28
cd "..";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    29
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    30
use "type.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    31
use "sign.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    32
use "sequence.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    33
use "envir.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    34
use "pattern.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    35
use "unify.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    36
use "net.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    37
use "logic.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    38
use "thm.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    39
use "drule.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    40
use "tctical.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    41
use "tactic.ML";
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    42
use "goals.ML";
403
4c66b1577753 added "axclass.ML", structure AxClass;
wenzelm
parents: 83
diff changeset
    43
use "axclass.ML";
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    44
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    45
(*Will be visible to all object-logics.*)
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    46
structure Type = TypeFun(structure Symtab=Symtab and Syntax=Syntax);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    47
structure Sign = SignFun(structure Type=Type and Syntax=Syntax);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    48
structure Sequence = SequenceFun();
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    49
structure Envir = EnvirFun();
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    50
structure Pattern = PatternFun(structure Sign=Sign and Envir=Envir);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    51
structure Unify = UnifyFun(structure Sign=Sign and Envir=Envir
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    52
                           and Sequence=Sequence and Pattern=Pattern);
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    53
structure Net = NetFun();
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    54
structure Logic = LogicFun(structure Unify=Unify and Net=Net);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    55
structure Thm = ThmFun(structure Logic=Logic and Unify=Unify and Net=Net
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    56
                             and Pattern=Pattern);
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    57
structure Drule = DruleFun(structure Logic=Logic and Thm=Thm);
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    58
structure Tactical = TacticalFun(structure Logic=Logic and Drule=Drule);
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    59
structure Tactic = TacticFun(structure Logic=Logic and Drule=Drule
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    60
                             and Tactical=Tactical and Net=Net);
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    61
structure Goals = GoalsFun(structure Logic=Logic and Drule=Drule
19
929ad32d63fc Pure/ROOT.ML
wenzelm
parents: 2
diff changeset
    62
                           and Tactic=Tactic and Pattern=Pattern);
618
97b715e65f70 added init_database (somewhat experimental);
wenzelm
parents: 607
diff changeset
    63
structure AxClass = AxClassFun(structure Logic = Logic
403
4c66b1577753 added "axclass.ML", structure AxClass;
wenzelm
parents: 83
diff changeset
    64
  and Goals = Goals and Tactic = Tactic);
635
034fda1c4873 AxClass no longer open;
wenzelm
parents: 618
diff changeset
    65
open BasicSyntax Thm Drule Tactical Tactic Goals;
0
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    66
a5a9c433f639 Initial revision
clasohm
parents:
diff changeset
    67
structure Pure = struct val thy = pure_thy end;
2
c67f44be880f moved use of Thy/ROOT.ML to end of file because Thy/read.ML needs Thm
clasohm
parents: 0
diff changeset
    68
618
97b715e65f70 added init_database (somewhat experimental);
wenzelm
parents: 607
diff changeset
    69
(*Theory parser and loader*)
73
075db6ac7f2f delete_file now has type string -> unit in both NJ and POLY,
clasohm
parents: 19
diff changeset
    70
cd "Thy";
075db6ac7f2f delete_file now has type string -> unit in both NJ and POLY,
clasohm
parents: 19
diff changeset
    71
use "ROOT.ML";
075db6ac7f2f delete_file now has type string -> unit in both NJ and POLY,
clasohm
parents: 19
diff changeset
    72
cd "..";
075db6ac7f2f delete_file now has type string -> unit in both NJ and POLY,
clasohm
parents: 19
diff changeset
    73
618
97b715e65f70 added init_database (somewhat experimental);
wenzelm
parents: 607
diff changeset
    74
use "install_pp.ML";
97b715e65f70 added init_database (somewhat experimental);
wenzelm
parents: 607
diff changeset
    75
fun init_database () = (init_thy_reader (); init_pps ());
97b715e65f70 added init_database (somewhat experimental);
wenzelm
parents: 607
diff changeset
    76