proposition: Lemma in_q_shuffle : forall (m1 m2 : data) (q1 q2 q3 q4 : queue data), In_queue data m2 (append data q3 (input data m1 q4)) -> append data q1 q2 = append data q3 q4 -> In_queue data m2 (append data q1 (input data m1 q2)).
proof: Proof. intros m1 m2 q1 q2 q3 q4 H H0. apply in_q_shuffle1. simpl in |- *. rewrite H0. generalize H. elim q3. simpl in |- *. auto. simpl in |- *. intros d q H1 H2. elim H2; intro. auto. generalize (H1 H3). intro H4. elim H4; intro; auto. Qed.
imports: bibli