diff --git a/theories/list.v b/theories/list.v index cc4254d593206339ed84f6ad86b933f42ed28ddb..56a35631a53efe2fbaa601799d244c504b41fb7b 100644 --- a/theories/list.v +++ b/theories/list.v @@ -1526,6 +1526,9 @@ Lemma prefix_app_l l1 l2 l3 : l1 ++ l3 `prefix_of` l2 → l1 `prefix_of` l2. Proof. intros [k ->]. exists (l3 ++ k). by rewrite (assoc_L (++)). Qed. Lemma prefix_app_r l1 l2 l3 : l1 `prefix_of` l2 → l1 `prefix_of` l2 ++ l3. Proof. intros [k ->]. exists (k ++ l3). by rewrite (assoc_L (++)). Qed. +Lemma prefix_lookup l1 l2 i x : + l1 !! i = Some x → l1 `prefix_of` l2 → l2 !! i = Some x. +Proof. intros ? [k ->]. rewrite lookup_app_l; eauto using lookup_lt_Some. Qed. Lemma prefix_length l1 l2 : l1 `prefix_of` l2 → length l1 ≤ length l2. Proof. intros [? ->]. rewrite app_length. lia. Qed. Lemma prefix_snoc_not l x : ¬l ++ [x] `prefix_of` l.