Update
This commit is contained in:
parent
a21f147de0
commit
03aa9cd43f
@ -522,7 +522,68 @@ Proof.
|
||||
destruct (last (b3::hd) false); destruct b1; destruct b.
|
||||
reflexivity. contradiction n2. reflexivity. reflexivity.
|
||||
contradiction n1. reflexivity. contradiction n1. reflexivity.
|
||||
reflexivity. contradiction n2. reflexivity. reflexivity. rewrite H3 in H.
|
||||
reflexivity. contradiction n2. reflexivity. reflexivity.
|
||||
|
||||
(* élargir hd et tl à l'aide des booléens b5 (gauche) et b6 (droite) *)
|
||||
destruct hd. inversion Q. destruct tl.
|
||||
assert (0 < n). assert (0 < 2). apply Nat.lt_0_2. generalize H0.
|
||||
generalize H4. apply Nat.lt_trans. apply tm_step_length_even in H4.
|
||||
rewrite H in H4.
|
||||
rewrite app_assoc in H4. rewrite <- app_removelast_last in H4.
|
||||
rewrite app_length in H4. rewrite Nat.even_add in H4.
|
||||
rewrite Q in H4. inversion H4. easy. rewrite H3 in H.
|
||||
rewrite app_removelast_last
|
||||
with (l := removelast (b3::b5::hd)) (d := false) in H.
|
||||
rewrite <- app_assoc in H.
|
||||
|
||||
(* assigner
|
||||
last (removelast (b3 :: b5 :: hd)) false = b1
|
||||
b6 = b1
|
||||
*)
|
||||
assert ({last (removelast (b3 :: b5 :: hd)) false=b}
|
||||
+ {~ last (removelast (b3 :: b5 :: hd)) false=b}). apply bool_dec.
|
||||
destruct H4. rewrite e0 in H.
|
||||
replace (
|
||||
removelast (removelast (b3 :: b5 :: hd)) ++ [b] ++ [b]
|
||||
++ b :: b1 :: b1 :: b :: b :: b1 :: b1 :: b :: b :: b6 :: tl)
|
||||
with (
|
||||
removelast (removelast (b3 :: b5 :: hd)) ++ [b] ++ [b] ++ [b]
|
||||
++ b1 :: b1 :: b :: b :: b1 :: b1 :: b :: b :: b6 :: tl) in H.
|
||||
apply tm_step_cubefree in H. contradiction H. reflexivity.
|
||||
apply Nat.lt_0_1. reflexivity.
|
||||
assert (last (removelast (b3 :: b5 :: hd)) false = b1).
|
||||
destruct (last (removelast (b3 :: b5 :: hd)) false); destruct b1; destruct b.
|
||||
reflexivity. reflexivity. contradiction n4. reflexivity.
|
||||
contradiction n1. reflexivity. contradiction n1. reflexivity.
|
||||
contradiction n4. reflexivity. reflexivity. reflexivity. rewrite H4 in H.
|
||||
assert ({b6=b} + {~ b6=b}). apply bool_dec. destruct H5. rewrite e0 in H.
|
||||
replace (
|
||||
removelast (removelast (b3 :: b5 :: hd)) ++ [b1] ++ [b]
|
||||
++ b :: b1 :: b1 :: b :: b :: b1 :: b1 :: b :: b :: b :: tl)
|
||||
with (
|
||||
(removelast (removelast (b3 :: b5 :: hd)) ++ [b1] ++ [b]
|
||||
++ b :: b1 :: b1 :: b :: b :: b1 :: b1 :: nil)
|
||||
++ [b] ++ [b] ++ [b] ++ tl) in H.
|
||||
apply tm_step_cubefree in H. contradiction H. reflexivity.
|
||||
apply Nat.lt_0_1. rewrite <- app_assoc. reflexivity.
|
||||
assert (b6 = b1). destruct (b6); destruct b1; destruct b.
|
||||
reflexivity. reflexivity. contradiction n5. reflexivity.
|
||||
contradiction n1. reflexivity. contradiction n1. reflexivity.
|
||||
contradiction n5. reflexivity. reflexivity. reflexivity. rewrite H5 in H.
|
||||
|
||||
(* contradiction *)
|
||||
replace (
|
||||
removelast (removelast (b3 :: b5 :: hd)) ++
|
||||
[b1] ++ [b] ++ b :: b1 :: b1 :: b :: b :: b1 :: b1 :: b :: b :: b1 :: tl)
|
||||
with (removelast (removelast (b3 :: b5 :: hd)) ++
|
||||
[b1;b;b;b1] ++ [b1;b;b;b1] ++ [b1;b;b;b1] ++ tl) in H.
|
||||
apply tm_step_cubefree in H. contradiction H. reflexivity.
|
||||
apply Nat.lt_0_succ. reflexivity. easy. easy.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user