TFL/rules.sig
author paulson
Tue May 27 13:22:30 1997 +0200 (1997-05-27)
changeset 3353 9112a2efb9a3
parent 3302 404fe31fd8d2
child 3379 7091ffa99c93
permissions -rw-r--r--
Removal of module Mask and datatype binding with its constructor |->
paulson@3302
     1
(*  Title:      TFL/rules
paulson@3302
     2
    ID:         $Id$
paulson@3302
     3
    Author:     Konrad Slind, Cambridge University Computer Laboratory
paulson@3302
     4
    Copyright   1997  University of Cambridge
paulson@3302
     5
paulson@3302
     6
Emulation of HOL inference rules for TFL
paulson@3302
     7
*)
paulson@3302
     8
paulson@2112
     9
signature Rules_sig =
paulson@2112
    10
sig
paulson@2112
    11
(*  structure USyntax : USyntax_sig *)
paulson@3245
    12
  val dest_thm : thm -> term list * term
paulson@2112
    13
paulson@2112
    14
  (* Inference rules *)
paulson@3245
    15
  val REFL      :cterm -> thm
paulson@3245
    16
  val ASSUME    :cterm -> thm
paulson@3245
    17
  val MP        :thm -> thm -> thm
paulson@3245
    18
  val MATCH_MP  :thm -> thm -> thm
paulson@3245
    19
  val CONJUNCT1 :thm -> thm
paulson@3245
    20
  val CONJUNCT2 :thm -> thm
paulson@3245
    21
  val CONJUNCTS :thm -> thm list
paulson@3245
    22
  val DISCH     :cterm -> thm -> thm
paulson@3245
    23
  val UNDISCH   :thm  -> thm
paulson@3353
    24
  val INST_TYPE :(typ*typ)list -> thm -> thm
paulson@3245
    25
  val SPEC      :cterm -> thm -> thm
paulson@3245
    26
  val ISPEC     :cterm -> thm -> thm
paulson@3245
    27
  val ISPECL    :cterm list -> thm -> thm
paulson@3245
    28
  val GEN       :cterm -> thm -> thm
paulson@3245
    29
  val GENL      :cterm list -> thm -> thm
paulson@3245
    30
  val LIST_CONJ :thm list -> thm
paulson@2112
    31
paulson@3245
    32
  val SYM : thm -> thm
paulson@3245
    33
  val DISCH_ALL : thm -> thm
paulson@3245
    34
  val FILTER_DISCH_ALL : (term -> bool) -> thm -> thm
paulson@3245
    35
  val SPEC_ALL  : thm -> thm
paulson@3245
    36
  val GEN_ALL   : thm -> thm
paulson@3245
    37
  val IMP_TRANS : thm -> thm -> thm
paulson@3245
    38
  val PROVE_HYP : thm -> thm -> thm
paulson@2112
    39
paulson@3245
    40
  val CHOOSE : cterm * thm -> thm -> thm
paulson@3245
    41
  val EXISTS : cterm * cterm -> thm -> thm
paulson@3245
    42
  val EXISTL : cterm list -> thm -> thm
paulson@3353
    43
  val IT_EXISTS : (cterm*cterm) list -> thm -> thm
paulson@2112
    44
paulson@3245
    45
  val EVEN_ORS : thm list -> thm list
paulson@3245
    46
  val DISJ_CASESL : thm -> thm list -> thm
paulson@2112
    47
paulson@3245
    48
  val SUBS : thm list -> thm -> thm
paulson@3245
    49
  val simplify : thm list -> thm -> thm
paulson@3245
    50
  val simpl_conv : thm list -> cterm -> thm
paulson@2112
    51
paulson@2112
    52
(* For debugging my isabelle solver in the conditional rewriter *)
paulson@2112
    53
(*
paulson@3245
    54
  val term_ref : term list ref
paulson@3245
    55
  val thm_ref : thm list ref
paulson@2112
    56
  val mss_ref : meta_simpset list ref
paulson@2112
    57
  val tracing :bool ref
paulson@2112
    58
*)
paulson@3245
    59
  val CONTEXT_REWRITE_RULE : term * term
paulson@3245
    60
                             -> {thms:thm list,congs: thm list, th:thm} 
paulson@3245
    61
                             -> thm * term list
paulson@3245
    62
  val RIGHT_ASSOC : thm -> thm 
paulson@2112
    63
paulson@3245
    64
  val prove : cterm * tactic -> thm
paulson@2112
    65
end;