Abstract

Adding predicate subtyping to higher-order logic yields a very expressive language in which type-checking is undecidable, making the definition of a system of verifiable certificates challenging. This work presents a solution to this issue with a minimal formalization of predicate subtyping, named PVS-Core, together with a system of verifiable certificates for PVS-Core, named PVS-Cert. PVS-Cert is based on the introduction of proof terms and explicit coercions. Its design is similar to that of PTSs with dependent pairs, with the exception of the definition of conversion, which is based on a specific notion of reduction \(\rightarrow _{\beta *}\), corresponding to \(\beta \)-reduction combined with the erasure of coercions. The use of this reduction instead of the more standard reduction \(\rightarrow _{\beta \sigma }\) allows to establish a simple correspondence between PVS-Core and PVS-Cert. On the other hand, a type-checking algorithm is designed for PVS-Cert, built on proofs of type preservation of \(\rightarrow _{\beta \sigma }\) and strong normalization of both \(\rightarrow _{\beta \sigma }\) and \(\rightarrow _{\beta *}\). Combining these results, PVS-Cert judgements are used as verifiable certificates for predicate subtyping. In addition, the reduction \(\rightarrow _{\beta \sigma }\) is used to define a cut elimination procedure for predicate subtyping. This definition provides a new tool to study the properties of predicate subtyping, as illustrated with a proof of consistency.

Highlights

  • Extending higher-order logic with predicate subtyping yields a very expressive type system, used notably at the core of the proof system PVS [17]

  • In pure higher-order logic, complete judgement derivations are too heavy to be used in practice as certificates, but lighter certificates can be produced by removing typing rules, recording deduction rules only: as this approach requires the decidability of type-checking, it doesn’t apply directly to predicate subtyping

  • This paper presents a new formal language, PVS-Cert, designed to be used as a language of verifiable certificates for predicate subtyping

Read more

Summary

Introduction

Extending higher-order logic with predicate subtyping yields a very expressive type system, used notably at the core of the proof system PVS [17]. Proof judgements and typing judgements become entangled in the presence of predicate subtyping, making type-checking undecidable. As a consequence, defining a language of verifiable proofs for predicate subtyping becomes challenging. In pure higher-order logic, complete judgement derivations are too heavy to be used in practice as certificates, but lighter certificates can be produced by removing typing rules, recording deduction rules only: as this approach requires the decidability of type-checking, it doesn’t apply directly to predicate subtyping. This paper presents a new formal language, PVS-Cert, designed to be used as a language of verifiable certificates for predicate subtyping. PVS-Cert is equipped with a notion of cut elimination, which can be used directly to study both PVS-Cert and PVSCore meta-theoretical properties

Extending Higher-Order Logic with Predicate Subtyping
Contributions
Related Works
PVS-Core: A Minimal Extension of HOL with Predicate Subtyping
Definitions
A Minimal System Expressing Predicate Subtyping
PVS-Cert
An Extension of λ-HOL
Expressing Predicate Subtyping
Properties of PVS-Cert
Stratification in PVS-Cert
A Type Preserving Reduction
Strong Normalization and Cut Elimination
Strong Normalization
Cut Elimination in PVS-Cert
Type-Checking in PVS-Cert
Expressing PVS-Core in PVS-Cert
An Erasing Function from PVS-Cert to PVS-Core
Expressing PVS-Core Derivations as PVS-Cert Judgements
Relating Conversion in PVS-Core and PVS-Cert
Soundness of the Synthesis of Certificates
10 Using PVS-Cert as a System of Verifiable Certificates for PVS-Core
Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call