equal
deleted
inserted
replaced
894 let val goals = map2 (mk_parametricity_goal names_lthy Rs) discAs discBs in |
894 let val goals = map2 (mk_parametricity_goal names_lthy Rs) discAs discBs in |
895 if null goals then |
895 if null goals then |
896 [] |
896 [] |
897 else |
897 else |
898 Goal.prove_sorry lthy [] [] (Logic.mk_conjunction_balanced goals) |
898 Goal.prove_sorry lthy [] [] (Logic.mk_conjunction_balanced goals) |
899 (K (mk_disc_transfer_tac (the_single rel_sel_thms) (the_single exhaust_discs) |
899 (fn {context = ctxt, prems = _} => mk_disc_transfer_tac ctxt (the_single rel_sel_thms) |
900 (flat (flat distinct_discsss)))) |
900 (the_single exhaust_discs) (flat (flat distinct_discsss))) |
901 |> Conjunction.elim_balanced (length goals) |
901 |> Conjunction.elim_balanced (length goals) |
902 |> Proof_Context.export names_lthy lthy |
902 |> Proof_Context.export names_lthy lthy |
903 |> map Thm.close_derivation |
903 |> map Thm.close_derivation |
904 end; |
904 end; |
905 |
905 |