equal
deleted
inserted
replaced
522 val cases = map mk_case intros |
522 val cases = map mk_case intros |
523 in Logic.list_implies (assm :: cases, prop) end; |
523 in Logic.list_implies (assm :: cases, prop) end; |
524 |
524 |
525 fun dest_conjunct_prem th = |
525 fun dest_conjunct_prem th = |
526 case HOLogic.dest_Trueprop (prop_of th) of |
526 case HOLogic.dest_Trueprop (prop_of th) of |
527 (Const (@{const_name "op &"}, _) $ t $ t') => |
527 (Const (@{const_name HOL.conj}, _) $ t $ t') => |
528 dest_conjunct_prem (th RS @{thm conjunct1}) |
528 dest_conjunct_prem (th RS @{thm conjunct1}) |
529 @ dest_conjunct_prem (th RS @{thm conjunct2}) |
529 @ dest_conjunct_prem (th RS @{thm conjunct2}) |
530 | _ => [th] |
530 | _ => [th] |
531 |
531 |
532 fun prove_casesrule ctxt (pred, (pre_cases_rule, nparams)) cases_rule = |
532 fun prove_casesrule ctxt (pred, (pre_cases_rule, nparams)) cases_rule = |