src/Provers/blast.ML
changeset 17795 5b18c3343028
parent 17271 2756a73f63a5
child 17993 e6e5b28740ec
equal deleted inserted replaced
17794:87fe1dd02d34 17795:5b18c3343028
    76     | Skolem of string * term option ref list
    76     | Skolem of string * term option ref list
    77     | Free  of string
    77     | Free  of string
    78     | Var   of term option ref
    78     | Var   of term option ref
    79     | Bound of int
    79     | Bound of int
    80     | Abs   of string*term
    80     | Abs   of string*term
    81     | op $  of term*term;
    81     | $  of term*term;
    82   type branch
    82   type branch
    83   val depth_tac 	: claset -> int -> int -> tactic
    83   val depth_tac 	: claset -> int -> int -> tactic
    84   val depth_limit : int ref
    84   val depth_limit : int ref
    85   val blast_tac 	: claset -> int -> tactic
    85   val blast_tac 	: claset -> int -> tactic
    86   val Blast_tac 	: int -> tactic
    86   val Blast_tac 	: int -> tactic
   831 (*nbrs = # of branches just prior to closing this one.  Delete choice points
   831 (*nbrs = # of branches just prior to closing this one.  Delete choice points
   832   for goals proved by the latest inference, provided NO variables in the
   832   for goals proved by the latest inference, provided NO variables in the
   833   next branch have been updated.*)
   833   next branch have been updated.*)
   834 fun prune (1, nxtVars, choices) = choices  (*DON'T prune at very end: allow 
   834 fun prune (1, nxtVars, choices) = choices  (*DON'T prune at very end: allow 
   835 					     backtracking over bad proofs*)
   835 					     backtracking over bad proofs*)
   836   | prune (nbrs, nxtVars, choices) =
   836   | prune (nbrs: int, nxtVars, choices) =
   837       let fun traceIt last =
   837       let fun traceIt last =
   838 		let val ll = length last
   838 		let val ll = length last
   839 		    and lc = length choices
   839 		    and lc = length choices
   840 		in if !trace andalso ll<lc then
   840 		in if !trace andalso ll<lc then
   841 		    (writeln("Pruning " ^ Int.toString(lc-ll) ^ " levels"); 
   841 		    (writeln("Pruning " ^ Int.toString(lc-ll) ^ " levels");