equal
deleted
inserted
replaced
979 fold_rev Logic.all (fs @ gs) (mk_Trueprop_eq (bnf_map_app_comp, comp_bnf_map_app)) |
979 fold_rev Logic.all (fs @ gs) (mk_Trueprop_eq (bnf_map_app_comp, comp_bnf_map_app)) |
980 end; |
980 end; |
981 |
981 |
982 fun mk_map_cong_prem x z set f f_copy = |
982 fun mk_map_cong_prem x z set f f_copy = |
983 Logic.all z (Logic.mk_implies |
983 Logic.all z (Logic.mk_implies |
984 (HOLogic.mk_Trueprop (HOLogic.mk_mem (z, set $ x)), |
984 (mk_Trueprop_mem (z, set $ x), mk_Trueprop_eq (f $ z, f_copy $ z))); |
985 mk_Trueprop_eq (f $ z, f_copy $ z))); |
|
986 |
985 |
987 val map_cong0_goal = |
986 val map_cong0_goal = |
988 let |
987 let |
989 val prems = map4 (mk_map_cong_prem x) zs bnf_sets_As fs fs_copy; |
988 val prems = map4 (mk_map_cong_prem x) zs bnf_sets_As fs fs_copy; |
990 val eq = mk_Trueprop_eq (Term.list_comb (bnf_map_AsBs, fs) $ x, |
989 val eq = mk_Trueprop_eq (Term.list_comb (bnf_map_AsBs, fs) $ x, |
1042 val concl = HOLogic.mk_Trueprop |
1041 val concl = HOLogic.mk_Trueprop |
1043 (if member (op =) I i then HOLogic.mk_eq (z, nth bs i) |
1042 (if member (op =) I i then HOLogic.mk_eq (z, nth bs i) |
1044 else @{term False}); |
1043 else @{term False}); |
1045 in |
1044 in |
1046 fold_rev Logic.all (z :: xs) |
1045 fold_rev Logic.all (z :: xs) |
1047 (Logic.mk_implies (HOLogic.mk_Trueprop (HOLogic.mk_mem (z, set_wit)), concl)) |
1046 (Logic.mk_implies (mk_Trueprop_mem (z, set_wit), concl)) |
1048 end; |
1047 end; |
1049 in |
1048 in |
1050 map wit_goal (0 upto live - 1) |
1049 map wit_goal (0 upto live - 1) |
1051 end; |
1050 end; |
1052 |
1051 |