proposition: Lemma i2th_replace_Index_eq : forall {m : nat} {As : Vector.t A m} {Bs : ilist2 As} (i2l : i2list C Bs) (n : Fin.t m) (new_c : C (ith2 Bs n)), i2th (replace2_Index2 i2l n new_c) n = new_c.
proof: Proof. induction As. - intros; inversion n. - intros; revert As Bs i2l new_c IHAs; pattern n, n0. match goal with |- ?P n n0 => simpl; apply (@Fin.caseS P); clear n n0; simpl in *; eauto end. Qed.
imports: Coq.Lists.List Coq.Strings.String Coq.Arith.Arith Fiat.Common.ilist Fiat.Common.ilist2