This commit is contained in:
Thomas Baruchel 2023-01-03 07:54:48 +01:00
parent 6fe6bee8bf
commit b4940d3d78

View File

@ -1253,6 +1253,36 @@ Proof.
generalize J6. generalize J3. apply tm_morphism_app2.
assert (M: b ++ b ++ b ++ tl2 = tm_morphism (skipn (Nat.div2 (length hd2)) (tm_step n))).
generalize J6. generalize J3. apply tm_morphism_app3.
assert (N: b = tm_morphism (firstn (Nat.div2 (length b)) (skipn (Nat.div2 (length hd2)) (tm_step n)))).
generalize J. symmetry in M. generalize M. apply tm_morphism_app2.
assert (even (length (b++b++b)) = true).
rewrite app_length. rewrite app_length.
rewrite Nat.even_add_even. assumption.
apply Nat.EvenT_Even. apply Nat.even_EvenT.
rewrite Nat.even_add_even. assumption.
apply Nat.EvenT_Even. apply Nat.even_EvenT. assumption.
assert (O: tl2 = tm_morphism (skipn (Nat.div2 (length (b++b++b))) (skipn (Nat.div2 (length hd2)) (tm_step n)))).
generalize H0. symmetry in M. generalize M.
replace (b++b++b++tl2) with ((b++b++b)++tl2). apply tm_morphism_app3.
rewrite app_assoc_reverse. apply app_inv_head_iff.
rewrite app_assoc_reverse. reflexivity.
assert (hd2 ++ b ++ b ++ b ++ tl2
= (tm_morphism (firstn (Nat.div2 (length hd2)) (tm_step n)))
++ (tm_morphism (firstn (Nat.div2 (length b)) (skipn (Nat.div2 (length hd2)) (tm_step n))))
++ (tm_morphism (firstn (Nat.div2 (length b)) (skipn (Nat.div2 (length hd2)) (tm_step n))))
++ (tm_morphism (firstn (Nat.div2 (length b)) (skipn (Nat.div2 (length hd2)) (tm_step n))))
++ (tm_morphism (skipn (Nat.div2 (length (b ++ b ++ b))) (skipn (Nat.div2 (length hd2)) (tm_step n))))).
rewrite <- L. rewrite <- N. rewrite <- O. reflexivity.
rewrite <- tm_morphism_app in H1. rewrite <- tm_morphism_app in H1.
rewrite <- tm_morphism_app in H1. rewrite <- tm_morphism_app in H1.
rewrite <- J3 in H1.
rewrite Nat.pred_succ. rewrite <- tm_morphism_eq in H1.
exists (firstn (Nat.div2 (length hd2)) (tm_step n)).
exists (firstn (Nat.div2 (length b)) (skipn (Nat.div2 (length hd2)) (tm_step n))).
exists (skipn (Nat.div2 (length (b ++ b ++ b))) (skipn (Nat.div2 (length hd2)) (tm_step n))).
assumption.
Qed.
@ -1261,25 +1291,9 @@ Proof.
Lemma tm_morphism_app2 : forall (l hd tl : list bool),
tm_morphism l = hd ++ tl
-> even (length hd) = true
-> hd = tm_morphism (firstn (Nat.div2 (length hd)) l).
Lemma tm_morphism_app3 : forall (l hd tl : list bool),
tm_morphism l = hd ++ tl
-> even (length hd) = true
-> tl = tm_morphism (skipn (Nat.div2 (length hd)) l).
Prouver que si un cube existe de taille k, il existe aussi un cube
de même taille précédé par un préfixe de taille pair (par décalage éventuel de 1)
Prouver que si un cube existe, de taille paire, précédé par un préfixe pair,
alors (par référence au morphisme, il existait à la génération précédente
un cube de taille moitié précédé par un préfixe pair
--> absurdité : on ne peut diviser indéfiniment par 2 et rester sur du pair