However, as @tothtamas28 noted, mapping should be injective, otherwise name clashes might occur. We might be able to achieve reasonable injectivity by making escaping more symbol-specific as we do in Kontrol with contract names (e.g., rewriting each of _%().:, to its own counterpart and not just a -).
At the moment, module name for a proof is generated based on its uppercase
proof.id
with escaped illegal characters:However, as @tothtamas28 noted, mapping should be injective, otherwise name clashes might occur. We might be able to achieve reasonable injectivity by making escaping more symbol-specific as we do in Kontrol with contract names (e.g., rewriting each of _%().:, to its own counterpart and not just a -).