equal
deleted
inserted
replaced
156 |
156 |
157 (* prove applied version of definitions *) |
157 (* prove applied version of definitions *) |
158 fun prove_proj (lhs, rhs) = |
158 fun prove_proj (lhs, rhs) = |
159 let |
159 let |
160 fun tac ctxt = rewrite_goals_tac ctxt fixdef_thms THEN |
160 fun tac ctxt = rewrite_goals_tac ctxt fixdef_thms THEN |
161 (simp_tac (Simplifier.global_context thy beta_ss)) 1 |
161 (simp_tac (put_simpset beta_ss ctxt)) 1 |
162 val goal = Logic.mk_equals (lhs, rhs) |
162 val goal = Logic.mk_equals (lhs, rhs) |
163 in Goal.prove_global thy [] [] goal (tac o #context) end |
163 in Goal.prove_global thy [] [] goal (tac o #context) end |
164 val proj_thms = map prove_proj projs |
164 val proj_thms = map prove_proj projs |
165 |
165 |
166 (* mk_tuple lhss == fixpoint *) |
166 (* mk_tuple lhss == fixpoint *) |