# [isabelle] simp and type variables

Dear Isabelle Users,

` Is there a way in Isabelle to specialize the type variables in a
``theorem to type expressions using the type variables of a goal context?
``And in particular, can this be combined with simp? I have a frequently
``arising situation where I have a set of theorems of the form "e1('a) =
``e2('a, 'b)" and I wish to rewrite using these. That is, I have
``equations where there are more type variables on the right than on the
``left (think "True = \<all> x. x = x"). simp will not use the equations
``as rewrites. As a result I am forced to use fairly low level reasoning
``with ssubst (or at least I seem to be). However, often times, I want to
``use a specialization of my equation to "e1(('c,'d)tyc) = e2(('c,'d)tyc,
``'c)". This equation would be accepted by simp. But the only way I know
``of creating this lemma is by using "lemma" and proving it separately.
``But I have many different such specializations, each of which will like
``be used only once. This seems to me to be just where you want to use
``[of ... ] or the like to inline the specialization into an ongoing
``proof. Since I can see no way of doing so, I thought I should ask if I
``am missing something.
`---Elsa

*This archive was generated by a fusion of
Pipermail (Mailman edition) and
MHonArc.*