deepseek-ai/DeepSeek-Prover-V1.5
Duplication Places in code with 6 or more lines that are exactly the same. |
Duplication Overall
- 31% duplication:
- 1,985 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
- 634 duplicated lines
- 54 duplicates
Duplication per Extension
Duplication per Component (primary)
Longest Duplicates
The list of 50 longest duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 85 | x 2 | prover/leanprover/lean | 365:453 (9%)548:637 (9%) | view | |
| 70 | x 2 | prover/leanprover/lean | 382:453 (7%)902:973 (7%) | view | |
| 70 | x 2 | prover/leanprover/lean | 566:637 (7%)902:973 (7%) | view | |
| 41 | x 2 | prover/leanprover/lean | 382:424 (4%)779:821 (4%) | view | |
| 41 | x 2 | prover/leanprover/lean | 566:608 (4%)779:821 (4%) | view | |
| 41 | x 2 | prover/leanprover/lean | 779:821 (4%)902:944 (4%) | view | |
| 28 | x 2 | prover/leanprover/lean | 426:453 (3%)822:850 (3%) | view | |
| 28 | x 2 | prover/leanprover/lean | 610:637 (3%)822:850 (3%) | view | |
| 28 | x 2 | prover/leanprover/lean | 822:850 (3%)946:973 (3%) | view | |
| 24 | x 2 | prover/leanprover/lean | 234:257 (2%)466:490 (2%) | view | |
| 23 | x 2 | prover/leanprover/lean | 235:257 (2%)691:714 (2%) | view | |
| 23 | x 2 | prover/leanprover/lean | 467:490 (2%)691:714 (2%) | view | |
| 21 | x 2 | prover/leanprover/lean | 261:281 (2%)496:516 (2%) | view | |
| 18 | x 2 | prover/leanprover/lean | 264:281 (1%)522:539 (1%) | view | |
| 18 | x 2 | prover/leanprover/lean | 499:516 (1%)522:539 (1%) | view | |
| 14 | x 2 | prover/leanprover/lean | 365:379 (1%)748:763 (1%) | view | |
| 14 | x 2 | prover/leanprover/lean | 365:379 (1%)879:895 (1%) | view | |
| 14 | x 2 | prover/leanprover/lean | 548:563 (1%)748:763 (1%) | view | |
| 14 | x 2 | prover/leanprover/lean | 548:563 (1%)879:895 (1%) | view | |
| 14 | x 2 | prover/leanprover/lean | 748:763 (1%)879:895 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 245:257 (1%)269:281 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 245:257 (1%)504:516 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 245:257 (1%)527:539 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 269:281 (1%)478:490 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 269:281 (1%)702:714 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 478:490 (1%)504:516 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 478:490 (1%)527:539 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 504:516 (1%)702:714 (1%) | view | |
| 13 | x 2 | prover/leanprover/lean | 527:539 (1%)702:714 (1%) | view | |
| 12 | x 2 | prover/leanprover/lean | 293:306 (1%)727:740 (1%) | view | |
| 12 | x 2 | prover/leanprover/lean | 293:306 (1%)860:871 (1%) | view | |
| 12 | x 2 | prover/leanprover/lean | 727:740 (1%)860:871 (1%) | view | |
| 11 | x 2 | configsconfigs | 18:30 (55%)18:30 (50%) | view | |
| 9 | x 2 | prover/leanprover/lean | 173:182 (<1%)640:649 (<1%) | view | |
| 9 | x 2 | prover/leanprover/lean | 212:221 (<1%)667:676 (<1%) | view | |
| 9 | x 2 | prover/leanprover/lean | 384:393 (<1%)1013:1021 (<1%) | view | |
| 9 | x 2 | prover/leanprover/lean | 568:577 (<1%)1013:1021 (<1%) | view | |
| 9 | x 2 | prover/leanprover/lean | 767:776 (<1%)889:899 (<1%) | view | |
| 9 | x 2 | prover/leanprover/lean | 781:790 (<1%)1013:1021 (<1%) | view | |
| 9 | x 2 | prover/leanprover/lean | 904:913 (<1%)1013:1021 (<1%) | view | |
| 8 | x 2 | prover/leanprover/lean | 224:232 (<1%)456:464 (<1%) | view | |
| 7 | x 2 | prover/leanprover/lean | 236:242 (<1%)495:501 (<1%) | view | |
| 7 | x 2 | prover/leanprover/lean | 468:474 (<1%)495:501 (<1%) | view | |
| 7 | x 2 | prover/leanprover/lean | 495:501 (<1%)692:698 (<1%) | view | |
| 7 | x 2 | configsconfigs | 6:16 (35%)6:16 (31%) | view | |
| 7 | x 2 | configsconfigs | 17:23 (29%)17:23 (35%) | view | |
| 6 | x 2 | prover/leanprover/lean | 237:242 (<1%)261:266 (<1%) | view | |
| 6 | x 2 | prover/leanprover/lean | 261:266 (<1%)469:474 (<1%) | view | |
| 6 | x 2 | prover/leanprover/lean | 261:266 (<1%)693:698 (<1%) | view | |
| 6 | x 2 | prover/leanprover/lean | 374:379 (<1%)767:772 (<1%) | view |
Most Frequent Duplicates
The list of 50 most frequently found duplicates.
| Size | # | Folders | Files | Lines | Code |
|---|---|---|---|---|---|
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 249:254 (<1%)273:278 (<1%)482:487 (<1%)508:513 (<1%)531:536 (<1%)706:711 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 248:253 (<1%)272:277 (<1%)481:486 (<1%)507:512 (<1%)530:535 (<1%)705:710 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 250:255 (<1%)274:279 (<1%)483:488 (<1%)509:514 (<1%)532:537 (<1%)707:712 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 246:251 (<1%)270:275 (<1%)479:484 (<1%)505:510 (<1%)528:533 (<1%)703:708 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 247:252 (<1%)271:276 (<1%)480:485 (<1%)506:511 (<1%)529:534 (<1%)704:709 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 251:256 (<1%)275:280 (<1%)484:489 (<1%)510:515 (<1%)533:538 (<1%)708:713 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 245:250 (<1%)269:274 (<1%)478:483 (<1%)504:509 (<1%)527:532 (<1%)702:707 (<1%) | view | |
| 6 | x 6 | prover/leanprover/leanprover/leanprover/leanprover/leanprover/lean | 252:257 (<1%)276:281 (<1%)485:490 (<1%)511:516 (<1%)534:539 (<1%)709:714 (<1%) | view | |
| 6 | x 5 | prover/leanprover/leanprover/leanprover/leanprover/lean | 237:242 (<1%)261:266 (<1%)469:474 (<1%)496:501 (<1%)693:698 (<1%) | view | |
| 6 | x 5 | prover/leanprover/leanprover/leanprover/leanprover/lean | 385:391 (<1%)569:575 (<1%)782:788 (<1%)905:911 (<1%)1014:1019 (<1%) | view | |
| 6 | x 5 | prover/leanprover/leanprover/leanprover/leanprover/lean | 387:393 (<1%)571:577 (<1%)784:790 (<1%)907:913 (<1%)1016:1021 (<1%) | view | |
| 6 | x 5 | prover/leanprover/leanprover/leanprover/leanprover/lean | 386:392 (<1%)570:576 (<1%)783:789 (<1%)906:912 (<1%)1015:1020 (<1%) | view | |
| 6 | x 5 | prover/leanprover/leanprover/leanprover/leanprover/lean | 374:379 (<1%)557:563 (<1%)757:763 (<1%)767:772 (<1%)889:895 (<1%) | view | |
| 6 | x 5 | prover/leanprover/leanprover/leanprover/leanprover/lean | 384:390 (<1%)568:574 (<1%)781:787 (<1%)904:910 (<1%)1013:1018 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 439:444 (<1%)623:628 (<1%)835:840 (<1%)959:964 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 368:374 (<1%)551:557 (<1%)751:757 (<1%)882:889 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 432:437 (<1%)616:621 (<1%)828:833 (<1%)952:957 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 409:414 (<1%)593:598 (<1%)806:811 (<1%)929:934 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 442:447 (<1%)626:631 (<1%)838:843 (<1%)962:967 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 428:433 (<1%)612:617 (<1%)824:829 (<1%)948:953 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 403:408 (<1%)587:592 (<1%)800:805 (<1%)923:928 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 388:394 (<1%)572:578 (<1%)785:791 (<1%)908:914 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 431:436 (<1%)615:620 (<1%)827:832 (<1%)951:956 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 412:417 (<1%)596:601 (<1%)809:814 (<1%)932:937 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 448:453 (<1%)632:637 (<1%)844:850 (<1%)968:973 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 398:403 (<1%)582:587 (<1%)795:800 (<1%)918:923 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 236:241 (<1%)468:473 (<1%)495:500 (<1%)692:697 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 366:372 (<1%)549:555 (<1%)749:755 (<1%)880:887 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 367:373 (<1%)550:556 (<1%)750:756 (<1%)881:888 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 394:400 (<1%)578:584 (<1%)791:797 (<1%)914:920 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 430:435 (<1%)614:619 (<1%)826:831 (<1%)950:955 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 372:377 (<1%)555:561 (<1%)755:761 (<1%)887:893 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 414:419 (<1%)598:603 (<1%)811:816 (<1%)934:939 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 447:452 (<1%)631:636 (<1%)843:849 (<1%)967:972 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 435:440 (<1%)619:624 (<1%)831:836 (<1%)955:960 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 399:404 (<1%)583:588 (<1%)796:801 (<1%)919:924 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 373:378 (<1%)556:562 (<1%)756:762 (<1%)888:894 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 408:413 (<1%)592:597 (<1%)805:810 (<1%)928:933 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 371:376 (<1%)554:560 (<1%)754:760 (<1%)885:892 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 411:416 (<1%)595:600 (<1%)808:813 (<1%)931:936 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 405:410 (<1%)589:594 (<1%)802:807 (<1%)925:930 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 441:446 (<1%)625:630 (<1%)837:842 (<1%)961:966 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 404:409 (<1%)588:593 (<1%)801:806 (<1%)924:929 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 426:431 (<1%)610:615 (<1%)822:827 (<1%)946:951 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 410:415 (<1%)594:599 (<1%)807:812 (<1%)930:935 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 382:387 (<1%)566:571 (<1%)779:784 (<1%)902:907 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 440:445 (<1%)624:629 (<1%)836:841 (<1%)960:965 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 444:449 (<1%)628:633 (<1%)840:845 (<1%)964:969 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 415:420 (<1%)599:604 (<1%)812:817 (<1%)935:940 (<1%) | view | |
| 6 | x 4 | prover/leanprover/leanprover/leanprover/lean | 446:451 (<1%)630:635 (<1%)842:847 (<1%)966:971 (<1%) | view |
About This Analysis
- For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
- Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
- You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
- To learn more about duplications and techniques for eliminating duplication, Sokrates recommends the following resources:
- Avoid Repetition, MartinFlower.com (IEEE Software article)
- Refactoring duplicated code, sourcemaking.com
- Beck Design Rules, MartinFowler.com
- DRY (Don't Repeat Yourself) Principle, Wikipedia
- The Cut-and-Paste Programming Software Development Anti-Pattern, sourcemaking.com
- Code Smells / Duplicated Code, Jeff Atwood, codinghorror.com:
- "Duplicated code is the bane of software development. Stamp out duplication whenever possible. You should always be on the lookout for more subtle cases of near-duplication, too. Don't Repeat Yourself!"
- Reducing Coupling, MartinFlower.com (IEEE Software article):
- "There are several ways to describe coupling, but it boils down to this: If changing one module in a program requires changing another module, then coupling exists. ... Duplication always implies coupling, because changing one piece of duplicate code implies changing the other."