This issue was raised in an email to known ATP system developers:
Koen Claessen (Paradox, Equinox, Infinox),
Hans De Nivelle (Bliksem, Geo),
Damien Doligez (Zenon),
Alexander Fuchs (Darwin).
Joe Hurd (Metis),
Konstantin Korovin (iProver),
Bill McCune (Prover9, Mace4),
Stephan Schulz (E),
Mark Stickel (SNARK),
Andrei Voronkov (Vampire),
Russell Wallace (Ayane),
Christoph Weidenbach (SPASS),
Jens Otten (leanCoP).
(I apologize to any developers who I left out - your feedback is also of interest).
Constraints and Requirements and Features
A recommended, but not required, naming convention for new symbols would help.
The recommendation must accomodate various types of new symbols, including Skolems, defined functions, defined predicates, and variables.
The recommended new symbol names should not open new name spaces, which would require changes to the existing TPTP syntax. If the output from one system is to be used as input to other systems, then it is not possible to open a new name space for new symbol names. Thus new non-variable symbol names should start with lowercase and consist of only alphnumerics and underscore. Similarly, new variable symbol names should start with uppercase and consist of only alphnumerics and underscore.
If the recommended new non-variable symbol names are in the name space of input symbols, then the recommended new symbol names should minimize the possibility of clashes with input symbol names.vThe convention minimizes the possibility of clashes with inputvnon-variable symbol names - evidence for this is that no problemvin the TPTP has any lines that match '[(, ] *s[A-Z][0-9]+(_[A-Za-z0-9_]+)?'.
New symbol names should be easy to recognize, by having an uncommon format. The naming convention has these features:vNew non-variable function symbols are easily found in formulaevusing the regular expression '[(, ] *s[A-Z][0-9]+(_[A-Za-z0-9_]+)?'.
The recommended new symbol names should not have to be long or ugly,vfor the sake of those who look at a lot of clauses and proofs. The convention's basic new symbol names are short.
It should be possible to annotate new symbol names, reflecting some extra meaning behindvthe symbols, e.g., introduced via splitting, domain name as in finite interpretations,vsystem that introduced the name etc.vThe convention allows arbitrary annotation for particular applications.
It is necessary to check for clashes when a new symbol name is generated in an ATP system.vIf a clash occurs, options are:
Report an error.
Retrospectively rename the clashing generated symbol.
Rename the clashing input symbol.
The introduction of new non-variable symbols should be documented in ATP systems' output.