Many proof assistants allow the use of features and axioms that increase their expressive power. However, these extensions must be used with care, as some combinations are known to lead to logical inconsistencies. Therefore, proof assistants include mechanisms that track which extensions are used in a proof development or module, ensuring that incompatible extensions are not used simultaneously. Unfortunately, existing extension tracking mechanisms are external to the type system. This means that we cannot specify precisely which extensions a definition depends on. Having the ability to write more precise specifications means we are not picking an overapproximation of the extensions needed, which prevents reusing definitions in the presence of incompatible extensions. Furthermore, we cannot refer to definitions that use incompatible extensions even if they are never used in inconsistent ways. The reasoning principles of one extension therefore cannot be used as a metatheory to reason about the properties of an incompatible extension. In this report, I explore the use of the Dependent Calculus of Indistinguishability (DCOI) by Liu et al. for extension tracking. DCOI is a dependent type system with dependency tracking, where terms and variables are assigned dependency levels alongside their types. These dependency levels form a lattice that describes which levels are permitted to access what. To instead track extensions, each set of extensions would correspond to a dependency level, and the lattice would describe how extensions are permitted to interact.
翻译:许多证明辅助工具允许使用增强表达能力的特性与公理。然而,这些扩展必须谨慎使用,因为已知某些组合会导致逻辑不一致性。因此,证明辅助工具包含机制来追踪证明开发或模块中使用的扩展,确保不兼容的扩展不会被同时使用。遗憾的是,现有的扩展追踪机制外在于类型系统。这意味着我们无法精确指定定义所依赖的扩展。具备编写更精确规范的能力意味着我们不会选择所需扩展的过度近似,从而防止在不兼容扩展存在时重用定义。此外,即使定义从未以不一致的方式使用,我们也不能引用使用不兼容扩展的定义。因此,一个扩展的推理原则无法作为元理论来推理不兼容扩展的性质。在本报告中,我探讨了使用Liu等人提出的不可区分性依赖演算(DCOI)进行扩展追踪。DCOI是一种具有依赖追踪功能的依赖类型系统,其中项和变量在类型之外还被分配了依赖层级。这些依赖层级形成一个格,描述哪些层级被允许访问什么。为了追踪扩展,每组扩展将对应一个依赖层级,而该格将描述扩展如何被允许交互。