src/Provers/classical.ML
changeset 8342 289ad8062cb5
parent 8203 2fcc6017cb72
child 8382 52d5fae273dd
equal deleted inserted replaced
8341:8f0f0ae02b10 8342:289ad8062cb5
  1109 
  1109 
  1110 local
  1110 local
  1111 
  1111 
  1112 fun intro_elim_tac netpair_of res_tac rules cs facts =
  1112 fun intro_elim_tac netpair_of res_tac rules cs facts =
  1113   let
  1113   let
  1114     val single_tac =
  1114     val tac =
  1115       if null rules then FIRST' (map (biresolve_from_nets_tac o netpair_of) (get_nets cs))
  1115       if null rules then FIRST' (map (biresolve_from_nets_tac o netpair_of) (get_nets cs))
  1116       else res_tac rules;
  1116       else res_tac rules;
  1117     fun multi_tac st = (single_tac THEN_ALL_NEW (TRY o (fn st => multi_tac st))) st;
  1117   in Method.insert_tac facts THEN' REPEAT_ALL_NEW tac end;
  1118   in Method.insert_tac facts THEN' multi_tac end;
       
  1119 
  1118 
  1120 val intro_tac = intro_elim_tac (fn (inet, _) => (inet, Net.empty)) resolve_tac;
  1119 val intro_tac = intro_elim_tac (fn (inet, _) => (inet, Net.empty)) resolve_tac;
  1121 val elim_tac = intro_elim_tac (fn (_, enet) => (Net.empty, enet)) eresolve_tac;
  1120 val elim_tac = intro_elim_tac (fn (_, enet) => (Net.empty, enet)) eresolve_tac;
  1122 
  1121 
  1123 in
  1122 in