equal
deleted
inserted
replaced
563 |
563 |
564 val (subgoal, prf) = mkconcl_trans thy C; |
564 val (subgoal, prf) = mkconcl_trans thy C; |
565 in |
565 in |
566 Subgoal.FOCUS (fn {prems, ...} => |
566 Subgoal.FOCUS (fn {prems, ...} => |
567 let val thms = map (prove prems) prfs |
567 let val thms = map (prove prems) prfs |
568 in rtac (prove thms prf) 1 end) ctxt n st |
568 in resolve_tac [prove thms prf] 1 end) ctxt n st |
569 end |
569 end |
570 handle Contr p => Subgoal.FOCUS (fn {prems, ...} => rtac (prove prems p) 1) ctxt n st |
570 handle Contr p => Subgoal.FOCUS (fn {prems, ...} => resolve_tac [prove prems p] 1) ctxt n st |
571 | Cannot => Seq.empty); |
571 | Cannot => Seq.empty); |
572 |
572 |
573 |
573 |
574 (* quasi_tac - solves quasi orders *) |
574 (* quasi_tac - solves quasi orders *) |
575 |
575 |
583 val prfs = solveQuasiOrder thy (lesss, C); |
583 val prfs = solveQuasiOrder thy (lesss, C); |
584 val (subgoals, prf) = mkconcl_quasi thy C; |
584 val (subgoals, prf) = mkconcl_quasi thy C; |
585 in |
585 in |
586 Subgoal.FOCUS (fn {prems, ...} => |
586 Subgoal.FOCUS (fn {prems, ...} => |
587 let val thms = map (prove prems) prfs |
587 let val thms = map (prove prems) prfs |
588 in rtac (prove thms prf) 1 end) ctxt n st |
588 in resolve_tac [prove thms prf] 1 end) ctxt n st |
589 end |
589 end |
590 handle Contr p => |
590 handle Contr p => |
591 (Subgoal.FOCUS (fn {prems, ...} => rtac (prove prems p) 1) ctxt n st |
591 (Subgoal.FOCUS (fn {prems, ...} => resolve_tac [prove prems p] 1) ctxt n st |
592 handle General.Subscript => Seq.empty) |
592 handle General.Subscript => Seq.empty) |
593 | Cannot => Seq.empty |
593 | Cannot => Seq.empty |
594 | General.Subscript => Seq.empty); |
594 | General.Subscript => Seq.empty); |
595 |
595 |
596 end; |
596 end; |