equal
deleted
inserted
replaced
123 val aux_plus = result(); |
123 val aux_plus = result(); |
124 |
124 |
125 Addsimps [aux_plus]; |
125 Addsimps [aux_plus]; |
126 |
126 |
127 goal thy "!!t::typ. new_tv n t ==> {x. ? y. x = n + y} Int free_tv t = {}"; |
127 goal thy "!!t::typ. new_tv n t ==> {x. ? y. x = n + y} Int free_tv t = {}"; |
128 by (step_tac (!claset) 1); |
128 by Safe_tac; |
129 by (cut_facts_tac [aux_plus] 1); |
129 by (cut_facts_tac [aux_plus] 1); |
130 by (dtac new_tv_le 1); |
130 by (dtac new_tv_le 1); |
131 by (assume_tac 1); |
131 by (assume_tac 1); |
132 by (rotate_tac 1 1); |
132 by (rotate_tac 1 1); |
133 by (dtac new_tv_not_free_tv 1); |
133 by (dtac new_tv_not_free_tv 1); |
134 by (Fast_tac 1); |
134 by (Fast_tac 1); |
135 val new_tv_Int_free_tv_empty_type = result (); |
135 val new_tv_Int_free_tv_empty_type = result (); |
136 |
136 |
137 goal thy "!!sch::type_scheme. new_tv n sch ==> {x. ? y. x = n + y} Int free_tv sch = {}"; |
137 goal thy "!!sch::type_scheme. new_tv n sch ==> {x. ? y. x = n + y} Int free_tv sch = {}"; |
138 by (step_tac (!claset) 1); |
138 by Safe_tac; |
139 by (cut_facts_tac [aux_plus] 1); |
139 by (cut_facts_tac [aux_plus] 1); |
140 by (dtac new_tv_le 1); |
140 by (dtac new_tv_le 1); |
141 by (assume_tac 1); |
141 by (assume_tac 1); |
142 by (rotate_tac 1 1); |
142 by (rotate_tac 1 1); |
143 by (dtac new_tv_not_free_tv 1); |
143 by (dtac new_tv_not_free_tv 1); |