From 88e20199e73fd81c593bf3f68b2be87cebb29566 Mon Sep 17 00:00:00 2001 From: Thomas Baruchel Date: Wed, 6 Dec 2023 08:45:44 +0100 Subject: [PATCH] Update --- src/subsequences2.v | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/subsequences2.v b/src/subsequences2.v index e845e6e..9ade6a0 100644 --- a/src/subsequences2.v +++ b/src/subsequences2.v @@ -359,16 +359,11 @@ Proof. Qed. - - - - - -Theorem subsequence_length_eq {X: Type} : +Theorem Subsequence_length_eq {X: Type} : forall (u v: list X), - subsequence u v -> length u = length v -> u = v. + Subsequence u v -> length u = length v -> u = v. Proof. - intros u v. intros H I. apply subsequence_eq_def_1 in H. + intros u v. intros H I. apply Subsequence_bools in H. destruct H. destruct H. rewrite H0 in I. rewrite map_length in I. replace (length u) with (length (combine x u)) in I. @@ -386,20 +381,25 @@ Proof. Qed. - Theorem subsequence_in {X: Type} : - forall (u: list X) a, In a u <-> subsequence u [a]. + Theorem Subsequence_in {X: Type} : + forall (u: list X) a, In a u <-> Subsequence u [a]. Proof. - intros u a. split. + intros u a. rewrite Subsequence_flat_map. split. induction u; intro H. apply in_nil in H. contradiction. destruct H. rewrite H. exists nil. exists [u]. split. reflexivity. - simpl. rewrite app_nil_r. reflexivity. apply subsequence_cons_l. - apply IHu. assumption. + simpl. rewrite app_nil_r. reflexivity. + rewrite <- Subsequence_flat_map. apply Subsequence_cons_l. + apply Subsequence_flat_map. apply IHu. assumption. intro H. destruct H. destruct H. destruct H. rewrite H0. apply in_or_app. right. destruct x0. apply PeanoNat.Nat.neq_succ_0 in H. contradiction. left. reflexivity. Qed. + + + + Theorem subsequence_rev {X: Type} : forall (u v: list X), subsequence u v <-> subsequence (rev u) (rev v). Proof.