ESOP-Paper/Paper.thy
changeset 2929 6fac48faee3a
parent 2880 c24f86c595ca
child 3111 60c4c93b30d5
equal deleted inserted replaced
2928:c537d43c09f1 2929:6fac48faee3a
  1995   that @{text "Lam (q \<bullet> a) (q \<bullet> t) = Lam a t"}
  1995   that @{text "Lam (q \<bullet> a) (q \<bullet> t) = Lam a t"}
  1996   and we are done with this case.
  1996   and we are done with this case.
  1997 
  1997 
  1998   The @{text Let}-case involving a (non-recursive) deep binder is a bit more complicated.
  1998   The @{text Let}-case involving a (non-recursive) deep binder is a bit more complicated.
  1999   The reason is that the we cannot apply Property \ref{avoiding} to the whole term @{text "Let p t"},
  1999   The reason is that the we cannot apply Property \ref{avoiding} to the whole term @{text "Let p t"},
  2000   because @{text p} might contain names that are bound (by @{text bn}) and so are 
  2000   because @{text p} might contain names bound by @{text bn}, but also some that are 
  2001   free. To solve this problem we have to introduce a permutation function that only
  2001   free. To solve this problem we have to introduce a permutation function that only
  2002   permutes names bound by @{text bn} and leaves the other names unchanged. We do this again
  2002   permutes names bound by @{text bn} and leaves the other names unchanged. We do this again
  2003   by lifting. For a
  2003   by lifting. For a
  2004   clause @{text "bn (C x\<^isub>1 \<dots> x\<^isub>r) = rhs"}, we define 
  2004   clause @{text "bn (C x\<^isub>1 \<dots> x\<^isub>r) = rhs"}, we define 
  2005   %
  2005   %