author  paulson 
Mon, 14 Aug 1995 13:42:27 +0200  
changeset 1228  7d6b0241afab 
parent 1078  e57beb974dd7 
child 1411  f60f68878354 
permissions  rwrr 
19  1 
(* Title: Pure/ROOT.ML 
0  2 
ID: $Id$ 
19  3 
Author: Lawrence C Paulson, Cambridge University Computer Laboratory 
0  4 
Copyright 1993 University of Cambridge 
5 

19  6 
Root file for Pure Isabelle: all modules in proper order for loading. 
7 
Loads pure Isabelle into an empty database (see also Makefile). 

0  8 

19  9 
TO DO: 
0  10 
instantiation of theorems can lead to inconsistent sorting of type vars if 
19  11 
'a::S is already present and 'a::T is introduced. 
0  12 
*) 
13 

14 
val banner = "Pure Isabelle"; 

1228  15 
val version = "Isabelle94 revision 4: August 95"; 
0  16 

17 
print_depth 1; 

18 

19 
use "library.ML"; 

20 
use "term.ML"; 

21 
use "symtab.ML"; 

22 

23 
structure Symtab = SymtabFun(); 

19  24 

25 
(*Syntax module*) 

0  26 
cd "Syntax"; 
27 
use "ROOT.ML"; 

28 
cd ".."; 

29 

30 
use "type.ML"; 

31 
use "sign.ML"; 

32 
use "sequence.ML"; 

33 
use "envir.ML"; 

34 
use "pattern.ML"; 

35 
use "unify.ML"; 

36 
use "net.ML"; 

37 
use "logic.ML"; 

38 
use "thm.ML"; 

39 
use "drule.ML"; 

40 
use "tctical.ML"; 

41 
use "tactic.ML"; 

42 
use "goals.ML"; 

403  43 
use "axclass.ML"; 
0  44 

45 
(*Will be visible to all objectlogics.*) 

46 
structure Type = TypeFun(structure Symtab=Symtab and Syntax=Syntax); 

47 
structure Sign = SignFun(structure Type=Type and Syntax=Syntax); 

48 
structure Sequence = SequenceFun(); 

49 
structure Envir = EnvirFun(); 

50 
structure Pattern = PatternFun(structure Sign=Sign and Envir=Envir); 

51 
structure Unify = UnifyFun(structure Sign=Sign and Envir=Envir 

19  52 
and Sequence=Sequence and Pattern=Pattern); 
0  53 
structure Net = NetFun(); 
54 
structure Logic = LogicFun(structure Unify=Unify and Net=Net); 

55 
structure Thm = ThmFun(structure Logic=Logic and Unify=Unify and Net=Net 

19  56 
and Pattern=Pattern); 
0  57 
structure Drule = DruleFun(structure Logic=Logic and Thm=Thm); 
58 
structure Tactical = TacticalFun(structure Logic=Logic and Drule=Drule); 

19  59 
structure Tactic = TacticFun(structure Logic=Logic and Drule=Drule 
60 
and Tactical=Tactical and Net=Net); 

0  61 
structure Goals = GoalsFun(structure Logic=Logic and Drule=Drule 
19  62 
and Tactic=Tactic and Pattern=Pattern); 
618  63 
structure AxClass = AxClassFun(structure Logic = Logic 
403  64 
and Goals = Goals and Tactic = Tactic); 
635  65 
open BasicSyntax Thm Drule Tactical Tactic Goals; 
0  66 

67 
structure Pure = struct val thy = pure_thy end; 

922
196ca0973a6d
added CPure (curried functions) and ProtoPure (ancestor of Pure and CPure)
clasohm
parents:
913
diff
changeset

68 
structure CPure = struct val thy = cpure_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

69 

1078  70 
(* hide functors; saves space in PolyML *) 
71 
functor SymtabFun() = struct end; 

72 
functor TypeFun() = struct end; 

73 
functor SignFun() = struct end; 

74 
functor SequenceFun() = struct end; 

75 
functor EnvirFun() = struct end; 

76 
functor PatternFun() = struct end; 

77 
functor UnifyFun() = struct end; 

78 
functor NetFun() = struct end; 

79 
functor LogicFun() = struct end; 

80 
functor ThmFun() = struct end; 

81 
functor DruleFun() = struct end; 

82 
functor TacticalFun() = struct end; 

83 
functor TacticFun() = struct end; 

84 
functor GoalsFun() = struct end; 

85 
functor AxClassFun() = struct end; 

86 

618  87 
(*Theory parser and loader*) 
73
075db6ac7f2f
delete_file now has type string > unit in both NJ and POLY,
clasohm
parents:
19
diff
changeset

88 
cd "Thy"; 
075db6ac7f2f
delete_file now has type string > unit in both NJ and POLY,
clasohm
parents:
19
diff
changeset

89 
use "ROOT.ML"; 
075db6ac7f2f
delete_file now has type string > unit in both NJ and POLY,
clasohm
parents:
19
diff
changeset

90 
cd ".."; 
075db6ac7f2f
delete_file now has type string > unit in both NJ and POLY,
clasohm
parents:
19
diff
changeset

91 

618  92 
use "install_pp.ML"; 
93 
fun init_database () = (init_thy_reader (); init_pps ()); 

94 