equal
deleted
inserted
replaced
96 @{thm ballI}, @{thm allI}, @{thm conjI}, @{thm impI}]; |
96 @{thm ballI}, @{thm allI}, @{thm conjI}, @{thm impI}]; |
97 |
97 |
98 (*Instantiates variables in typing conditions. |
98 (*Instantiates variables in typing conditions. |
99 drawback: does not simplify conjunctions*) |
99 drawback: does not simplify conjunctions*) |
100 fun type_solver_tac ctxt hyps = SELECT_GOAL |
100 fun type_solver_tac ctxt hyps = SELECT_GOAL |
101 (DEPTH_SOLVE (etac FalseE 1 |
101 (DEPTH_SOLVE (etac @{thm FalseE} 1 |
102 ORELSE basic_res_tac 1 |
102 ORELSE basic_res_tac 1 |
103 ORELSE (ares_tac hyps 1 |
103 ORELSE (ares_tac hyps 1 |
104 APPEND typecheck_step_tac (tcset_of ctxt)))); |
104 APPEND typecheck_step_tac (tcset_of ctxt)))); |
105 |
105 |
106 val type_solver = Simplifier.mk_solver' "ZF typecheck" (fn ss => |
106 val type_solver = Simplifier.mk_solver' "ZF typecheck" (fn ss => |