src/HOL/ROOT.ML
author nipkow
Wed Oct 25 09:48:29 1995 +0100 (1995-10-25)
changeset 1301 42782316d510
parent 1296 ae31bb7774a7
child 1338 d2fc3bfaee7f
permissions -rw-r--r--
Added various thms and tactics.
     1 (*  Title:      HOL/ROOT.ML
     2     ID:         $Id$
     3     Author:     Tobias Nipkow
     4     Copyright   1993  University of Cambridge
     5 
     6 Adds Classical Higher-order Logic to a database containing Pure Isabelle.
     7 Should be executed in the subdirectory HOL.
     8 *)
     9 
    10 val banner = "Higher-Order Logic with curried functions";
    11 writeln banner;
    12 
    13 print_depth 1;
    14 
    15 (* Add user sections *)
    16 use "../Pure/section_utils.ML";
    17 use "thy_syntax.ML";
    18 
    19 use_thy "HOL";
    20 use "../Provers/splitter.ML";
    21 use "../Provers/hypsubst.ML";
    22 use "../Provers/classical.ML";
    23 
    24 (** Applying HypsubstFun to generate hyp_subst_tac **)
    25 
    26 structure Hypsubst_Data =
    27   struct
    28   structure Simplifier = Simplifier
    29   (*Take apart an equality judgement; otherwise raise Match!*)
    30   fun dest_eq (Const("Trueprop",_) $ (Const("op =",_)  $ t $ u)) = (t,u);
    31   val eq_reflection = eq_reflection
    32   val imp_intr = impI
    33   val rev_mp = rev_mp
    34   val subst = subst
    35   val sym = sym
    36   end;
    37 
    38 structure Hypsubst = HypsubstFun(Hypsubst_Data);
    39 open Hypsubst;
    40 
    41 (*** Applying ClassicalFun to create a classical prover ***)
    42 structure Classical_Data = 
    43   struct
    44   val sizef	= size_of_thm
    45   val mp	= mp
    46   val not_elim	= notE
    47   val classical	= classical
    48   val hyp_subst_tacs=[hyp_subst_tac]
    49   end;
    50 
    51 structure Classical = ClassicalFun(Classical_Data);
    52 open Classical;
    53 
    54 (*Propositional rules*)
    55 val prop_cs = empty_cs addSIs [refl,TrueI,conjI,disjCI,impI,notI,iffI]
    56                        addSEs [conjE,disjE,impCE,FalseE,iffE];
    57 
    58 (*Quantifier rules*)
    59 val HOL_cs = prop_cs addSIs [allI] addIs [exI,ex1I]
    60                      addSEs [exE,ex1E] addEs [allE];
    61 
    62 use     "simpdata.ML";
    63 
    64 use_thy "Ord";
    65 use_thy "subset";
    66 use     "hologic.ML";
    67 use     "subtype.ML";
    68 use_thy "Prod";
    69 use_thy "Sum";
    70 use_thy "Gfp";
    71 use_thy "Nat";
    72 
    73 use "datatype.ML";
    74 use "ind_syntax.ML";
    75 use "add_ind_def.ML";
    76 use "intr_elim.ML";
    77 use "indrule.ML";
    78 use_thy "Inductive";
    79 
    80 use_thy "Finite";
    81 use_thy "Sexp";
    82 use_thy "List";
    83 
    84 init_pps ();
    85 print_depth 8;
    86 
    87 make_chart ();   (*make HTML chart*)
    88 
    89 val HOL_build_completed = ();   (*indicate successful build*)