Skip to content

Commit 4cfdd16

Browse files
committed
some improvement
1 parent d9ec708 commit 4cfdd16

1 file changed

Lines changed: 10 additions & 14 deletions

File tree

factorion.v

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ Lemma fact_look_up1S r k n p l :
144144
fact_look_up1 r k (9 + n1)%num (362880 + p)%num l9.
145145
Proof. by []. Qed.
146146

147+
Lemma N362880 : N.to_nat (362880) = 9 `!.
148+
Proof.
149+
rewrite -[362880%num]/(9 * (8 * (7 * (720))))%num.
150+
rewrite 3!N2Nat.inj_mul 3!factS.
151+
congr ((_ * (_ * (_ * _)%coq_nat)%coq_nat)%coq_nat)%coq_nat.
152+
Qed.
153+
147154
Lemma mem_fact_look_up1 r k n p (l : seq N) :
148155
{subset l <= (fact_look_up1 r k n p l)}.
149156
Proof.
@@ -268,13 +275,7 @@ case=> [d9E|].
268275
rewrite nE mE1 divnMDl ?expn_gt0 //.
269276
rewrite mE divn_small; last by rewrite ltn_mod expn_gt0.
270277
by rewrite addn0 mulnC.
271-
rewrite nE sum_factMD // -p1E N2Nat.inj_add.
272-
have -> : N.to_nat (362880) = N.to_nat (9 * (8 * (7 * (720)))).
273-
by congr N.to_nat.
274-
rewrite [N.to_nat (9 * _)]N2Nat.inj_mul.
275-
rewrite [N.to_nat (8 * _)]N2Nat.inj_mul.
276-
rewrite [N.to_nat (7 * _)]N2Nat.inj_mul.
277-
rewrite 3!factS.
278+
rewrite nE sum_factMD // -p1E N2Nat.inj_add N362880.
278279
by congr ((_ * (_ * (_ * _)%coq_nat)%coq_nat)%coq_nat + _)%coq_nat.
279280
move=> d d1E.
280281
suff : d1 < 10 by rewrite d1E.
@@ -344,11 +345,7 @@ case => [d8E mE|].
344345
by rewrite /sum_fact -[ndigits _ _]/1 big_ord_recr big_ord0.
345346
case => [d9E mE|].
346347
apply: fact_look_up1_spec => //.
347-
rewrite /sum_fact.
348-
have -> : N.to_nat (362880) = N.to_nat (9 * (8 * (7 * (720)))).
349-
by congr N.to_nat.
350-
rewrite [N.to_nat (9 * _)]N2Nat.inj_mul.
351-
rewrite [N.to_nat (8 * _)]N2Nat.inj_mul.
348+
rewrite /sum_fact N362880.
352349
rewrite -[ndigits _ _]/1 big_ord_recr big_ord0.
353350
rewrite [digitn _ _ _]/= [RHS]add0n 2!factS.
354351
by congr (_ * (_ * _)%coq_nat)%coq_nat.
@@ -431,7 +428,7 @@ Lemma Nfact_small_spec d :
431428
d < 10 -> Nfact_small (N.of_nat d) = N.of_nat (d `!).
432429
Proof.
433430
case: d => [//|] [//|] [//|] [//|] [//|] [//|] [//|] [//|] [//|] [_|//].
434-
by rewrite 3!factS 3!Nat2N.inj_mul.
431+
by rewrite -N362880 N2Nat.id.
435432
Qed.
436433

437434
Fixpoint Nsum_fact10_aux (n : positive) p :=
@@ -593,7 +590,6 @@ Qed.
593590
Definition cend_in_cycle n m :=
594591
if (n <? m)%num then ~~ check_loop n 60 else false.
595592

596-
597593
Lemma cend_in_cycleN_spec n m :
598594
~~ cend_in_cycle n m -> (n <? m)%num ->
599595
exists k,

0 commit comments

Comments
 (0)