src/Provers/classical.ML
changeset 469 b571d997178d
parent 54 3dea30013b58
child 681 9b02474744ca
equal deleted inserted replaced
468:3dd1dcb509ac 469:b571d997178d
    39   val addSIs: claset * thm list -> claset
    39   val addSIs: claset * thm list -> claset
    40   val print_cs: claset -> unit
    40   val print_cs: claset -> unit
    41   val rep_claset: claset -> 
    41   val rep_claset: claset -> 
    42       {safeIs: thm list, safeEs: thm list, hazIs: thm list, hazEs: thm list}
    42       {safeIs: thm list, safeEs: thm list, hazIs: thm list, hazEs: thm list}
    43   val best_tac : claset -> int -> tactic
    43   val best_tac : claset -> int -> tactic
    44   val chain_tac : int -> tactic
       
    45   val contr_tac : int -> tactic
    44   val contr_tac : int -> tactic
    46   val eq_mp_tac: int -> tactic
    45   val eq_mp_tac: int -> tactic
    47   val fast_tac : claset -> int -> tactic
    46   val fast_tac : claset -> int -> tactic
    48   val joinrules : thm list * thm list -> (bool * thm) list
    47   val joinrules : thm list * thm list -> (bool * thm) list
    49   val mp_tac: int -> tactic
    48   val mp_tac: int -> tactic
    87     in  assume_tac 	ORELSE' 
    86     in  assume_tac 	ORELSE' 
    88 	contr_tac 	ORELSE' 
    87 	contr_tac 	ORELSE' 
    89         biresolve_tac (foldr addrl (rls,[]))
    88         biresolve_tac (foldr addrl (rls,[]))
    90     end;
    89     end;
    91 
    90 
    92 (*Given assumption P-->Q, reduces subgoal Q to P [deletes the implication!] *)
       
    93 fun chain_tac i =
       
    94     eresolve_tac [imp_elim] i  THEN
       
    95     (assume_tac (i+1)  ORELSE  contr_tac (i+1));
       
    96 
    91 
    97 (*** Classical rule sets ***)
    92 (*** Classical rule sets ***)
    98 
    93 
    99 type netpair = (int*(bool*thm)) Net.net * (int*(bool*thm)) Net.net;
    94 type netpair = (int*(bool*thm)) Net.net * (int*(bool*thm)) Net.net;
   100 
    95