src/HOL/ROOT.ML
author clasohm
Thu Jun 29 12:48:48 1995 +0200 (1995-06-29)
changeset 1165 97b2bb5d43c3
parent 1024 b86042000035
child 1264 3eb91524b938
permissions -rw-r--r--
renamed CHOL to HOL
     1 (*  Title:      CHOL/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/simplifier.ML";
    22 use "../Provers/splitter.ML";
    23 use "../Provers/hypsubst.ML";
    24 use "../Provers/classical.ML";
    25 
    26 (** Applying HypsubstFun to generate hyp_subst_tac **)
    27 
    28 structure Hypsubst_Data =
    29   struct
    30   structure Simplifier = Simplifier
    31   (*Take apart an equality judgement; otherwise raise Match!*)
    32   fun dest_eq (Const("Trueprop",_) $ (Const("op =",_)  $ t $ u)) = (t,u);
    33   val eq_reflection = eq_reflection
    34   val imp_intr = impI
    35   val rev_mp = rev_mp
    36   val subst = subst
    37   val sym = sym
    38   end;
    39 
    40 structure Hypsubst = HypsubstFun(Hypsubst_Data);
    41 open Hypsubst;
    42 
    43 (*** Applying ClassicalFun to create a classical prover ***)
    44 structure Classical_Data = 
    45   struct
    46   val sizef	= size_of_thm
    47   val mp	= mp
    48   val not_elim	= notE
    49   val classical	= classical
    50   val hyp_subst_tacs=[hyp_subst_tac]
    51   end;
    52 
    53 structure Classical = ClassicalFun(Classical_Data);
    54 open Classical;
    55 
    56 (*Propositional rules*)
    57 val prop_cs = empty_cs addSIs [refl,TrueI,conjI,disjCI,impI,notI,iffI]
    58                        addSEs [conjE,disjE,impCE,FalseE,iffE];
    59 
    60 (*Quantifier rules*)
    61 val HOL_cs = prop_cs addSIs [allI] addIs [exI,ex1I]
    62                      addSEs [exE,ex1E] addEs [allE];
    63 
    64 use     "simpdata.ML";
    65 use_thy "Ord";
    66 use_thy "subset";
    67 use_thy "equalities";
    68 use     "hologic.ML";
    69 use     "subtype.ML";
    70 use_thy "Prod";
    71 use_thy "Sum";
    72 use_thy "Gfp";
    73 use_thy "Nat";
    74 
    75 use "datatype.ML";
    76 use "ind_syntax.ML";
    77 use "add_ind_def.ML";
    78 use "intr_elim.ML";
    79 use "indrule.ML";
    80 use_thy "Inductive";
    81 
    82 use_thy "Finite";
    83 use_thy "Sexp";
    84 use_thy "List";
    85 
    86 init_pps ();
    87 print_depth 8;
    88 
    89 val HOL_build_completed = ();   (*indicate successful build*)