equal
deleted
inserted
replaced
958 val nchotomy_goalss = |
958 val nchotomy_goalss = |
959 map2 (fn false => K [] | true => single o HOLogic.mk_Trueprop o mk_dnf o map #prems) |
959 map2 (fn false => K [] | true => single o HOLogic.mk_Trueprop o mk_dnf o map #prems) |
960 de_facto_exhaustives disc_eqnss |
960 de_facto_exhaustives disc_eqnss |
961 |> list_all_fun_args [] |
961 |> list_all_fun_args [] |
962 val nchotomy_taut_thmss = |
962 val nchotomy_taut_thmss = |
963 map3 (fn {disc_exhausts, ...} => fn syntactic_exhaustive => |
963 map3 (fn {disc_exhausts, ...} => fn false => K [] |
964 (case maybe_tac of |
964 | true => map_prove_with_tac (fn {context = ctxt, ...} => |
965 SOME tac => map_prove_with_tac tac |
965 mk_primcorec_nchotomy_tac ctxt disc_exhausts)) |
966 | NONE => |
|
967 if syntactic_exhaustive then |
|
968 map_prove_with_tac (fn {context = ctxt, ...} => |
|
969 mk_primcorec_nchotomy_tac ctxt disc_exhausts) |
|
970 else |
|
971 K [])) |
|
972 corec_specs syntactic_exhaustives nchotomy_goalss; |
966 corec_specs syntactic_exhaustives nchotomy_goalss; |
973 val goalss = goalss' |
967 val goalss = goalss' |
974 |> (if is_none maybe_tac then |
968 |> (if is_none maybe_tac then |
975 append (map2 (fn true => K [] | false => map (rpair [])) syntactic_exhaustives |
969 append (map2 (fn true => K [] | false => map (rpair [])) syntactic_exhaustives |
976 nchotomy_goalss) |
970 nchotomy_goalss) |