We introduce a formal meta-language for probabilistic programming, capable of expressing both programs and the type systems in which they are embedded. We are motivated here by the desire to allow an AGI to learn not only relevant knowledge (programs/proofs), but also appropriate ways of reasoning (logics/type systems). We draw on the frameworks of cubical type theory and dependent typed metagraphs to formalize our approach. In doing so, we show that specific constructions within the meta-language can be related via bisimulation (implying path equivalence) to the type systems they correspond. This allows our approach to provide a convenient means of deriving synthetic denotational semantics for various type systems. Particularly, we derive bisimulations for pure type systems (PTS), and probabilistic dependent type systems (PDTS). We discuss further the relationship of PTS to non-well-founded set theory, and demonstrate the feasibility of our approach with an implementation of a bisimulation proof for a small-scale type system in Guarded Cubical Agda.
翻译:我们引入一种正规的元语言来进行概率性编程,能够表达程序及其嵌入的系统类型。我们在这里的动机是希望让AGI不仅能够学习相关知识(方案/防伪),而且能够学习适当的推理方法(逻辑/类型系统)。我们利用立方类型理论和依赖型元体谱的框架来将我们的方法正规化。我们这样做时,我们表明,元语言中的具体构造可以通过微缩(简化路径等同)与它们对应的系统类型联系起来。这使我们的方法能够提供一种方便的手段,为各种类型系统产生合成分解语的语义。特别是,我们为纯型系统(PTS)和概率性依赖型系统(PDTS)制定平衡法。我们进一步讨论PTS与非有根据的理论之间的关系,并展示我们方法的可行性,同时在受监护的Abubical Agda对小规模类型系统实施一种微缩的验证。