proposition: Lemma validtc6_inv l : validtc6 l -> exists p1, l = p1 :: nil /\ (p1 = C1 \/ p1 = C2 \/ p1 = C3 \/ p1 = C4 \/ p1 = C5 \/ p1 = C6).
proof: Proof. case l; clear l; try (intros HH; case HH; fail). intros c l1; case l1; simpl; auto. 2: intros c1 l2 H; case H. intros H; exists c; split; auto. revert H. case c; auto; do 3 (right; auto). contradict H; simpl; auto with arith. Qed.
imports: PrimInt63 Cyclic63 List BasicRubik