src/ZF/ROOT.ML
changeset 5 75e163863e16
parent 0 a5a9c433f639
child 6 8ce8c4d13d4d
equal deleted inserted replaced
4:2695ba9b40f7 5:75e163863e16
     1 (*  Title: 	ZF/ROOT
     1 (*  Title: 	ZF/ROOT
     2     ID:         $Id$
       
     3     Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
     2     Author: 	Lawrence C Paulson, Cambridge University Computer Laboratory
     4     Copyright   1993  University of Cambridge
     3     Copyright   1993  University of Cambridge
     5 
     4 
     6 Adds Zermelo-Fraenkel Set Theory to a database containing First-Order Logic.
     5 Adds Zermelo-Fraenkel Set Theory to a database containing First-Order Logic.
     7 
     6 
    22 
    21 
    23 fun rlss MRL bottom_rls = 
    22 fun rlss MRL bottom_rls = 
    24   let fun rs_aux i [] = bottom_rls
    23   let fun rs_aux i [] = bottom_rls
    25 	| rs_aux i (rls::rlss) = rls RLN (i, rs_aux (i+1) rlss)
    24 	| rs_aux i (rls::rlss) = rls RLN (i, rs_aux (i+1) rlss)
    26   in  rs_aux 1 rlss  end;
    25   in  rs_aux 1 rlss  end;
       
    26 
       
    27 fun CHECK_SOLVED (Tactic tf) = 
       
    28   Tactic (fn state => 
       
    29     case Sequence.pull (tf state) of
       
    30 	None => error"DO_GOAL: tactic list failed"
       
    31       | Some(x,_) => 
       
    32 		if has_fewer_prems 1 x then
       
    33 		    Sequence.cons(x, Sequence.null)
       
    34 		else (writeln"DO_GOAL: unsolved goals!!";
       
    35 		      writeln"Final proof state was ...";
       
    36 		      print_goals (!goals_limit) x;
       
    37 		      raise ERROR));
       
    38 
       
    39 fun DO_GOAL tfs = SELECT_GOAL (CHECK_SOLVED (EVERY1 tfs));
    27 
    40 
    28 print_depth 1;
    41 print_depth 1;
    29 use_thy "zf";
    42 use_thy "zf";
    30 
    43 
    31 use     "upair.ML";
    44 use     "upair.ML";