equal
deleted
inserted
replaced
176 next |
176 next |
177 case (valid_cons T X \<Gamma>) |
177 case (valid_cons T X \<Gamma>) |
178 have "\<turnstile> (pi\<bullet>\<Gamma>) ok" by fact |
178 have "\<turnstile> (pi\<bullet>\<Gamma>) ok" by fact |
179 moreover |
179 moreover |
180 have "X\<sharp>(domain \<Gamma>)" by fact |
180 have "X\<sharp>(domain \<Gamma>)" by fact |
181 hence "(pi\<bullet>X)\<sharp>(domain (pi\<bullet>\<Gamma>))" by (simp add: fresh_eqvt domain_eqvt[symmetric]) |
181 hence "(pi\<bullet>X)\<sharp>(domain (pi\<bullet>\<Gamma>))" by (simp add: fresh_bij domain_eqvt[symmetric]) |
182 moreover |
182 moreover |
183 have "T closed_in \<Gamma>" by fact |
183 have "T closed_in \<Gamma>" by fact |
184 hence "(pi\<bullet>T) closed_in (pi\<bullet>\<Gamma>)" by (simp add: closed_in_eqvt) |
184 hence "(pi\<bullet>T) closed_in (pi\<bullet>\<Gamma>)" by (simp add: closed_in_eqvt) |
185 ultimately show "\<turnstile> (pi\<bullet>((X,T)#\<Gamma>)) ok" by simp |
185 ultimately show "\<turnstile> (pi\<bullet>((X,T)#\<Gamma>)) ok" by simp |
186 qed |
186 qed |
339 simp add: pt_list_set_pi[OF pt_tyvrs_inst, symmetric]) |
339 simp add: pt_list_set_pi[OF pt_tyvrs_inst, symmetric]) |
340 apply(force intro: valid_eqvt |
340 apply(force intro: valid_eqvt |
341 dest: pt_set_bij2[OF pt_tyvrs_inst, OF at_tyvrs_inst] |
341 dest: pt_set_bij2[OF pt_tyvrs_inst, OF at_tyvrs_inst] |
342 simp add: domain_eqvt) |
342 simp add: domain_eqvt) |
343 apply(force) |
343 apply(force) |
344 apply(force intro!: S_Forall simp add: fresh_prod fresh_eqvt) |
344 apply(force intro!: S_Forall simp add: fresh_prod fresh_bij) |
345 done |
345 done |
346 |
346 |
347 text {* The most painful part of the subtyping definition is the strengthening of the |
347 text {* The most painful part of the subtyping definition is the strengthening of the |
348 induction principle. The induction principle that comes for free with the definition of |
348 induction principle. The induction principle that comes for free with the definition of |
349 @{term "subtype_of"} requires to prove the @{text "S_Forall"}-case for \emph{all} binders |
349 @{term "subtype_of"} requires to prove the @{text "S_Forall"}-case for \emph{all} binders |