src/HOL/ex/Unification.thy
changeset 23373 ead82c82da9e
parent 23219 87ad6e8a5f2c
child 23777 60b7800338d5
equal deleted inserted replaced
23372:0035be079bee 23373:ead82c82da9e
   459   from `unify_dom (M \<cdot> N, M' \<cdot> N')`
   459   from `unify_dom (M \<cdot> N, M' \<cdot> N')`
   460   have "unify_dom (M, M')"
   460   have "unify_dom (M, M')"
   461     by (rule acc_downward) (rule unify_rel.intros)
   461     by (rule acc_downward) (rule unify_rel.intros)
   462   hence no_new_vars: 
   462   hence no_new_vars: 
   463     "\<And>t. vars_of (t \<triangleleft> \<theta>1) \<subseteq> vars_of M \<union> vars_of M' \<union> vars_of t"
   463     "\<And>t. vars_of (t \<triangleleft> \<theta>1) \<subseteq> vars_of M \<union> vars_of M' \<union> vars_of t"
   464     by (rule unify_vars)
   464     by (rule unify_vars) (rule `unify M M' = Some \<theta>1`)
   465 
   465 
   466   from ih2 show ?case 
   466   from ih2 show ?case 
   467   proof 
   467   proof 
   468     assume "\<exists>v\<in>vars_of (N \<triangleleft> \<theta>1) \<union> vars_of (N' \<triangleleft> \<theta>1). elim \<theta>2 v"
   468     assume "\<exists>v\<in>vars_of (N \<triangleleft> \<theta>1) \<union> vars_of (N' \<triangleleft> \<theta>1). elim \<theta>2 v"
   469     then obtain v 
   469     then obtain v