src/HOL/ROOT.ML
author clasohm
Wed Oct 04 13:10:03 1995 +0100 (1995-10-04)
changeset 1264 3eb91524b938
parent 1165 97b2bb5d43c3
child 1273 6960ec882bca
permissions -rw-r--r--
added local simpsets; removed IOA from 'make test'
     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 set eta_contract;
    15 
    16 (* Add user sections *)
    17 use "../Pure/section_utils.ML";
    18 use "thy_syntax.ML";
    19 
    20 use_thy "HOL";
    21 use "../Provers/splitter.ML";
    22 use "../Provers/hypsubst.ML";
    23 use "../Provers/classical.ML";
    24 
    25 (** Applying HypsubstFun to generate hyp_subst_tac **)
    26 
    27 structure Hypsubst_Data =
    28   struct
    29   structure Simplifier = Simplifier
    30   (*Take apart an equality judgement; otherwise raise Match!*)
    31   fun dest_eq (Const("Trueprop",_) $ (Const("op =",_)  $ t $ u)) = (t,u);
    32   val eq_reflection = eq_reflection
    33   val imp_intr = impI
    34   val rev_mp = rev_mp
    35   val subst = subst
    36   val sym = sym
    37   end;
    38 
    39 structure Hypsubst = HypsubstFun(Hypsubst_Data);
    40 open Hypsubst;
    41 
    42 (*** Applying ClassicalFun to create a classical prover ***)
    43 structure Classical_Data = 
    44   struct
    45   val sizef	= size_of_thm
    46   val mp	= mp
    47   val not_elim	= notE
    48   val classical	= classical
    49   val hyp_subst_tacs=[hyp_subst_tac]
    50   end;
    51 
    52 structure Classical = ClassicalFun(Classical_Data);
    53 open Classical;
    54 
    55 (*Propositional rules*)
    56 val prop_cs = empty_cs addSIs [refl,TrueI,conjI,disjCI,impI,notI,iffI]
    57                        addSEs [conjE,disjE,impCE,FalseE,iffE];
    58 
    59 (*Quantifier rules*)
    60 val HOL_cs = prop_cs addSIs [allI] addIs [exI,ex1I]
    61                      addSEs [exE,ex1E] addEs [allE];
    62 
    63 use     "simpdata.ML";
    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 val HOL_build_completed = ();   (*indicate successful build*)