  Deep learning models have made significant progress in automatic program
repair. However, the black-box nature of these methods has restricted their
practical applications. To address this challenge, this paper presents an
interpretable approach for program repair based on sequence-to-sequence models
with causal inference and our method is called CPR, short for causal program
repair. Our CPR can generate explanations in the process of decision making,
which consists of groups of causally related input-output tokens. Firstly, our
method infers these relations by querying the model with inputs disturbed by
data augmentation. Secondly, it generates a graph over tokens from the
responses and solves a partitioning problem to select the most relevant
components. The experiments on four programming languages (Java, C, Python, and
JavaScript) show that CPR can generate causal graphs for reasonable
interpretations and boost the performance of bug fixing in automatic program
repair.
