author  paulson 
Fri, 22 Dec 1995 10:11:35 +0100  
changeset 1411  f60f68878354 
parent 1228  7d6b0241afab 
child 1443  ff8a804e0201 
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"; 

1411  20 
use "symtab.ML"; 
0  21 
use "term.ML"; 
19  22 

23 
(*Syntax module*) 

0  24 
cd "Syntax"; 
25 
use "ROOT.ML"; 

26 
cd ".."; 

27 

28 
use "type.ML"; 

29 
use "sign.ML"; 

30 
use "sequence.ML"; 

31 
use "envir.ML"; 

32 
use "pattern.ML"; 

33 
use "unify.ML"; 

34 
use "net.ML"; 

35 
use "logic.ML"; 

36 
use "thm.ML"; 

37 
use "drule.ML"; 

38 
use "tctical.ML"; 

39 
use "tactic.ML"; 

40 
use "goals.ML"; 

403  41 
use "axclass.ML"; 
0  42 

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

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

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

46 
structure Sequence = SequenceFun(); 

47 
structure Envir = EnvirFun(); 

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

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

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

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

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

19  57 
structure Tactic = TacticFun(structure Logic=Logic and Drule=Drule 
58 
and Tactical=Tactical and Net=Net); 

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

65 
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

66 
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

67 

1078  68 
(* hide functors; saves space in PolyML *) 
69 
functor TypeFun() = struct end; 

70 
functor SignFun() = struct end; 

71 
functor SequenceFun() = struct end; 

72 
functor EnvirFun() = struct end; 

73 
functor PatternFun() = struct end; 

74 
functor UnifyFun() = struct end; 

75 
functor NetFun() = struct end; 

76 
functor LogicFun() = struct end; 

77 
functor ThmFun() = struct end; 

78 
functor DruleFun() = struct end; 

79 
functor TacticalFun() = struct end; 

80 
functor TacticFun() = struct end; 

81 
functor GoalsFun() = struct end; 

82 
functor AxClassFun() = struct end; 

83 

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

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

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

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

88 

618  89 
use "install_pp.ML"; 
90 
fun init_database () = (init_thy_reader (); init_pps ()); 

91 