33 lines
763 B
Coq
33 lines
763 B
Coq
|
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.
|
||
|
|
||
|
|
||
|
|