coqbooks/src/scs.v

33 lines
763 B
Coq
Raw Normal View History

2023-12-02 12:08:19 -05:00
Require Import subsequences.
Require Import Sorting.Permutation.
Require Import Nat.
Require Import PeanoNat.
Require Import List.
Import ListNotations.
Definition complete_sequence {X: Type} (u base : list X) :=
forall v, Permutation base v -> subsequence u v.
Definition shortest_complete_sequence {X: Type} (u base : list X) :=
complete_sequence u base
/\ forall v, length v < length u -> ~ complete_sequence v base.
Theorem complete_sequence_rev {X: Type} :
forall (u base : list X),
complete_sequence u base -> complete_sequence (rev u) base.
Proof.
intros u base. intro H.
intro p. intro I. apply subsequence_rev. rewrite rev_involutive.
apply H. apply Permutation_trans with (l' := p). assumption.
apply Permutation_rev.
Qed.