fact: Fixpoint capa (t : term) : Cap := match t with | Var x => mkCap (fun v => Vnth v (Nat.lt_0_succ 0), Vcons t Vnil) | Fun f ts => if defined f R then mkCap (fun v => Vnth v (Nat.lt_0_succ 0), Vcons t Vnil) else let cs := Vmap capa ts in mkCap (fun v => Fun f (Vmap_sum cs v), conc cs) end.
imports: CoLoR(LogicUtil ACalls ATrs VecUtil ListUtil NatUtil RelUtil)