src/FOLP/classical.ML
changeset 469 b571d997178d
parent 0 a5a9c433f639
child 1459 d12da312eff4
equal deleted inserted replaced
468:3dd1dcb509ac 469:b571d997178d
    44   val rep_claset: claset -> 
    44   val rep_claset: claset -> 
    45       {safeIs: thm list, safeEs: thm list, hazIs: thm list, hazEs: thm list, 
    45       {safeIs: thm list, safeEs: thm list, hazIs: thm list, hazEs: thm list, 
    46        safe0_brls:(bool*thm)list, safep_brls: (bool*thm)list,
    46        safe0_brls:(bool*thm)list, safep_brls: (bool*thm)list,
    47        haz_brls: (bool*thm)list}
    47        haz_brls: (bool*thm)list}
    48   val best_tac : claset -> int -> tactic
    48   val best_tac : claset -> int -> tactic
    49   val chain_tac : int -> tactic
       
    50   val contr_tac : int -> tactic
    49   val contr_tac : int -> tactic
    51   val fast_tac : claset -> int -> tactic
    50   val fast_tac : claset -> int -> tactic
    52   val inst_step_tac : int -> tactic
    51   val inst_step_tac : int -> tactic
    53   val joinrules : thm list * thm list -> (bool * thm) list
    52   val joinrules : thm list * thm list -> (bool * thm) list
    54   val mp_tac: int -> tactic
    53   val mp_tac: int -> tactic
    88 fun swap_res_tac rls = 
    87 fun swap_res_tac rls = 
    89     let fun tacf rl = rtac rl ORELSE' etac (rl RSN (2,swap))
    88     let fun tacf rl = rtac rl ORELSE' etac (rl RSN (2,swap))
    90     in  assume_tac ORELSE' contr_tac ORELSE' FIRST' (map tacf rls)
    89     in  assume_tac ORELSE' contr_tac ORELSE' FIRST' (map tacf rls)
    91     end;
    90     end;
    92 
    91 
    93 (*Given assumption P-->Q, reduces subgoal Q to P [deletes the implication!] *)
       
    94 fun chain_tac i =
       
    95     eresolve_tac [imp_elim] i  THEN
       
    96     (assume_tac (i+1)  ORELSE  contr_tac (i+1));
       
    97 
    92 
    98 (*** Classical rule sets ***)
    93 (*** Classical rule sets ***)
    99 
    94 
   100 datatype claset =
    95 datatype claset =
   101  CS of {safeIs: thm list,
    96  CS of {safeIs: thm list,