{
  "title" : "Duplication",
  "timestamp" : "2026-01-18 16:52:58",
  "duplicates" : [ {
    "blockSize" : 15,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/psi/ext/ArendDefFunction.kt",
        "extension" : "kt",
        "linesOfCode" : 64,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 40,
      "startLine" : 52,
      "endLine" : 72,
      "cleanedStartLine" : 23,
      "cleanedEndLine" : 37
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/psi/ext/ArendDefInstance.kt",
        "extension" : "kt",
        "linesOfCode" : 55,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 33,
      "startLine" : 45,
      "endLine" : 65,
      "cleanedStartLine" : 17,
      "cleanedEndLine" : 31
    } ]
  }, {
    "blockSize" : 13,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/module/ArendModuleBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 263,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 194,
      "startLine" : 128,
      "endLine" : 146,
      "cleanedStartLine" : 74,
      "cleanedEndLine" : 86
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/module/editor/ArendModuleConfigurationView.kt",
        "extension" : "kt",
        "linesOfCode" : 261,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 171,
      "startLine" : 171,
      "endLine" : 189,
      "cleanedStartLine" : 85,
      "cleanedEndLine" : 97
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/module/ArendModuleBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 263,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 194,
      "startLine" : 110,
      "endLine" : 119,
      "cleanedStartLine" : 62,
      "cleanedEndLine" : 69
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/module/editor/ArendModuleConfigurationView.kt",
        "extension" : "kt",
        "linesOfCode" : 261,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 171,
      "startLine" : 159,
      "endLine" : 168,
      "cleanedStartLine" : 77,
      "cleanedEndLine" : 84
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/grammars/ArendDocLexer.flex",
        "extension" : "flex",
        "linesOfCode" : 342,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 342,
      "startLine" : 214,
      "endLine" : 221,
      "cleanedStartLine" : 197,
      "cleanedEndLine" : 204
    }, {
      "file" : {
        "relativePath" : "src/main/grammars/ArendDocLexer.flex",
        "extension" : "flex",
        "linesOfCode" : 342,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 342,
      "startLine" : 230,
      "endLine" : 237,
      "cleanedStartLine" : 212,
      "cleanedEndLine" : 219
    } ]
  }, {
    "blockSize" : 8,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/module/ArendModuleBuilder.kt",
        "extension" : "kt",
        "linesOfCode" : 263,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 194,
      "startLine" : 150,
      "endLine" : 159,
      "cleanedStartLine" : 89,
      "cleanedEndLine" : 96
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/module/editor/ArendModuleConfigurationView.kt",
        "extension" : "kt",
        "linesOfCode" : 261,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 171,
      "startLine" : 196,
      "endLine" : 205,
      "cleanedStartLine" : 102,
      "cleanedEndLine" : 109
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/intention/AddClarifyingParensIntention.kt",
        "extension" : "kt",
        "linesOfCode" : 49,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 28,
      "startLine" : 41,
      "endLine" : 48,
      "cleanedStartLine" : 19,
      "cleanedEndLine" : 25
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/intention/RemoveClarifyingParensIntention.kt",
        "extension" : "kt",
        "linesOfCode" : 121,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 82,
      "startLine" : 113,
      "endLine" : 120,
      "cleanedStartLine" : 68,
      "cleanedEndLine" : 74
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkSourceRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 17,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkTestSourceRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 17,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/refactoring/changeSignature/ArendParametersInfo.kt",
        "extension" : "kt",
        "linesOfCode" : 192,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 165,
      "endLine" : 171,
      "cleanedStartLine" : 121,
      "cleanedEndLine" : 127
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/refactoring/changeSignature/ArendParametersInfo.kt",
        "extension" : "kt",
        "linesOfCode" : 192,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 156,
      "startLine" : 179,
      "endLine" : 185,
      "cleanedStartLine" : 133,
      "cleanedEndLine" : 139
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkBinRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 13,
      "endLine" : 22,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkSourceRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 17,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 7,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkBinRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 21,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 13,
      "startLine" : 13,
      "endLine" : 22,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 11
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkTestSourceRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 11,
      "startLine" : 8,
      "endLine" : 17,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 9
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/search/proof/ProofSearchUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 185,
      "startLine" : 145,
      "endLine" : 150,
      "cleanedStartLine" : 86,
      "cleanedEndLine" : 91
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/search/proof/ProofSearchUtils.kt",
        "extension" : "kt",
        "linesOfCode" : 245,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 185,
      "startLine" : 166,
      "endLine" : 171,
      "cleanedStartLine" : 106,
      "cleanedEndLine" : 111
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkExcludeRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 12,
      "endLine" : 17,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkResourceRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 14,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 8,
      "endLine" : 13,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/navigation/ArendFileNavigationContributor.kt",
        "extension" : "kt",
        "linesOfCode" : 48,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 27,
      "endLine" : 32,
      "cleanedStartLine" : 11,
      "cleanedEndLine" : 16
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/navigation/ArendNavigationContributorBase.kt",
        "extension" : "kt",
        "linesOfCode" : 44,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 29,
      "startLine" : 25,
      "endLine" : 30,
      "cleanedStartLine" : 10,
      "cleanedEndLine" : 15
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkExcludeRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 17,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 10,
      "startLine" : 12,
      "endLine" : 17,
      "cleanedStartLine" : 5,
      "cleanedEndLine" : 10
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkResourceTestRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 14,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 8,
      "endLine" : 13,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkResourceRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 14,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 8,
      "endLine" : 13,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/actions/mark/ArendMarkResourceTestRootAction.kt",
        "extension" : "kt",
        "linesOfCode" : 14,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 8,
      "startLine" : 8,
      "endLine" : 13,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/grammars/ArendDocLexer.flex",
        "extension" : "flex",
        "linesOfCode" : 342,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 342,
      "startLine" : 181,
      "endLine" : 186,
      "cleanedStartLine" : 167,
      "cleanedEndLine" : 172
    }, {
      "file" : {
        "relativePath" : "src/main/grammars/ArendDocLexer.flex",
        "extension" : "flex",
        "linesOfCode" : 342,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 342,
      "startLine" : 200,
      "endLine" : 205,
      "cleanedStartLine" : 184,
      "cleanedEndLine" : 189
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/refactoring/changeSignature/entries/AbstractExpressionEntry.kt",
        "extension" : "kt",
        "linesOfCode" : 128,
        "components" : [ "primary::src" ],
        "concerns" : [ "::TODOs" ]
      },
      "sourceFileCleanedLinesOfCode" : 99,
      "startLine" : 102,
      "endLine" : 107,
      "cleanedStartLine" : 67,
      "cleanedEndLine" : 72
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/refactoring/changeSignature/entries/CoClauseEntry.kt",
        "extension" : "kt",
        "linesOfCode" : 78,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 60,
      "startLine" : 68,
      "endLine" : 73,
      "cleanedStartLine" : 45,
      "cleanedEndLine" : 50
    } ]
  }, {
    "blockSize" : 6,
    "duplicatedFileBlocks" : [ {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/injection/actions/HideImplicitInformationAction.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 12,
      "endLine" : 20,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    }, {
      "file" : {
        "relativePath" : "src/main/kotlin/org/arend/injection/actions/RevealImplicitInformationAction.kt",
        "extension" : "kt",
        "linesOfCode" : 18,
        "components" : [ "primary::src" ],
        "concerns" : [ "::Unclassified" ]
      },
      "sourceFileCleanedLinesOfCode" : 9,
      "startLine" : 12,
      "endLine" : 20,
      "cleanedStartLine" : 3,
      "cleanedEndLine" : 8
    } ]
  } ],
  "overallDuplication" : null
}