fact: Fixpoint replace_at (l : list A) (p : nat) (a : A) : list A := match l with | nil => nil | h :: t => match p with | 0 => a :: t | S p' => h :: (replace_at t p' a) end end.
imports: CoLoR(LogicUtil EqUtil RelUtil BoolUtil NatUtil) Coq(Setoid SetoidList FunInd)