equal
deleted
inserted
replaced
154 val plain_eq = sum_psimp |
154 val plain_eq = sum_psimp |
155 |> fold (implies_elim_swp o assume) conds |
155 |> fold (implies_elim_swp o assume) conds |
156 |
156 |
157 val x = Free ("x", RST) |
157 val x = Free ("x", RST) |
158 |
158 |
159 val f_def_inst = instantiate' [] (map (SOME o cterm_of thy) args) (freezeT f_def) (* FIXME: freezeT *) |
159 val f_def_inst = instantiate' [] (map (SOME o cterm_of thy) args) (Thm.freezeT f_def) (* FIXME: freezeT *) |
160 in |
160 in |
161 reflexive (cterm_of thy (lambda x (SumTools.mk_proj streeR pthR x))) (* PR(x) == PR(x) *) |
161 reflexive (cterm_of thy (lambda x (SumTools.mk_proj streeR pthR x))) (* PR(x) == PR(x) *) |
162 |> (fn it => combination it (plain_eq RS eq_reflection)) |
162 |> (fn it => combination it (plain_eq RS eq_reflection)) |
163 |> beta_norm_eq (* PR(S(I(as))) == PR(IR(...)) *) |
163 |> beta_norm_eq (* PR(S(I(as))) == PR(IR(...)) *) |
164 |> transitive f_def_inst (* f ... == PR(IR(...)) *) |
164 |> transitive f_def_inst (* f ... == PR(IR(...)) *) |