added Pair_eq to pair_ss in prod.ML
removed it locally in llist.ML because preconditions of the form <a,b> =
<?x,?y>, which used to be solved by reflexivity, now rewrote to a = ?x & b =
?y, which is not solved by reflexivity.
(* Title: Substitutions/utermlemmas.thy
Author: Martin Coen, Cambridge University Computer Laboratory
Copyright 1993 University of Cambridge
Additional definitions for uterms that are not part of the basic inductive definition.
*)
UTLemmas = UTerm + Setplus +
consts
vars_of :: "'a uterm=>'a set"
"<:" :: "['a uterm,'a uterm]=>bool" (infixl 54)
rules (*Definitions*)
vars_of_def "vars_of(t) == uterm_rec(t,%x.{x},%x.{},%u v q r.q Un r)"
occs_def "s <: t == uterm_rec(t,%x.False,%x.False,%u v q r.s=u | s=v | q | r)"
end