proposition: Lemma update_app_l : forall l1 l2 n v, n < length l1 -> update n v (l1 ++ l2) = update n v l1 ++ l2.
proof: Proof. Proof using IA. intros l1. induction l1 as [| x l1' ]; introv E; rew_list in *. { fequals. math. } { destruct n as [|n']. { do 2 rewrite update_zero. rew_list~. } { do 2 rewrite update_cons. rew_list~. fequals. erewrite* IHl1'. math. } } Qed.
imports: Coq.Classes.Morphisms TLC(LibTactics LibLogic LibReflect LibOperation LibProd LibOption LibNat LibInt LibWf LibMonoid LibRelation)