src/Provers/blast.ML
changeset 42802 51d7e74f6899
parent 42801 da4ad5f98953
child 42804 125bddad6bd6
equal deleted inserted replaced
42801:da4ad5f98953 42802:51d7e74f6899
    39 type netpair = (int*(bool*thm)) Net.net * (int*(bool*thm)) Net.net;
    39 type netpair = (int*(bool*thm)) Net.net * (int*(bool*thm)) Net.net;
    40 
    40 
    41 signature BLAST_DATA =
    41 signature BLAST_DATA =
    42 sig
    42 sig
    43   structure Classical: CLASSICAL
    43   structure Classical: CLASSICAL
    44   val thy: theory
    44   val Trueprop_const: string * typ
    45   val equality_name: string
    45   val equality_name: string
    46   val not_name: string
    46   val not_name: string
    47   val notE: thm           (* [| ~P;  P |] ==> R *)
    47   val notE: thm           (* [| ~P;  P |] ==> R *)
    48   val ccontr: thm
    48   val ccontr: thm
    49   val hyp_subst_tac: bool -> int -> tactic
    49   val hyp_subst_tac: bool -> int -> tactic
   170 fun mkGoal P = Const ("*Goal*", []) $ P;
   170 fun mkGoal P = Const ("*Goal*", []) $ P;
   171 
   171 
   172 fun isGoal (Const ("*Goal*", _) $ _) = true
   172 fun isGoal (Const ("*Goal*", _) $ _) = true
   173   | isGoal _ = false;
   173   | isGoal _ = false;
   174 
   174 
   175 val TruepropC = Object_Logic.judgment_name Data.thy;  (* FIXME *)
   175 val (TruepropC, TruepropT) = Data.Trueprop_const;
   176 val TruepropT = Sign.the_const_type Data.thy TruepropC;
       
   177 
   176 
   178 fun mk_Trueprop t = Term.$ (Term.Const (TruepropC, TruepropT), t);
   177 fun mk_Trueprop t = Term.$ (Term.Const (TruepropC, TruepropT), t);
   179 
   178 
   180 fun strip_Trueprop (tm as Const (c, _) $ t) = if c = TruepropC then t else tm
   179 fun strip_Trueprop (tm as Const (c, _) $ t) = if c = TruepropC then t else tm
   181   | strip_Trueprop tm = tm;
   180   | strip_Trueprop tm = tm;