fact: Fixpoint replace_all x y u := match u with | Def.Var z => Var (replace_var x y z) | Def.Fun _ => u | Def.App u1 u2 => App (replace_all x y u1) (replace_all x y u2) | Def.Lam z v => Lam (replace_var x y z) (replace_all x y v) end.
imports: CoLoR(LogicUtil LAlpha RelUtil BoolUtil) Coq(Morphisms)