equal
deleted
inserted
replaced
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 |