Deep Generation of Coq Lemma Names Using Elaborated Terms
Table 1: Projects from the MathComp Family Used in Our Corpus.
['[BOLD] Project', '[EMPTY]', '[BOLD] SHA', '[BOLD] #Files', '[BOLD] #Lemmas', '[BOLD] #Toks', '[BOLD] LOC  [BOLD] Spec.', '[BOLD] LOC  [BOLD] Proof', '[BOLD] LOC/file  [BOLD] Spec.', '[BOLD] LOC/file  [BOLD] Proof']
Constituent projects: The table includes columns for the project identifier, revision SHA, number of files (#Files), number of lemmas (#Lemmas), number of tokens (#Toks), LOC for specifications (Spec.) and proof scripts (Proof), and average LOC per file for specifications and proof scripts. The math-comp SHA corresponds to version 1.9.0 of the library. The LOC numbers are computed with Coq’s bundled coqwc tool. The last two rows of the table show the averages and sums across all projects. Corpus statistics : We extracted all lemmas from the corpus, and initially we obtained 15,005 lemmas in total. However, we found several outlier lemmas where the lemma statement, syntax tree and kernel tree were very large. To ensure stable training, and similar to prior work on generating method names for Java This left us with 11,266 lemmas.