holpy: Interactive Theorem Proving in Python

05/15/2019
by   Bohua Zhan, et al.
0

The design of modern proof assistants is faced with several sometimes conflicting goals, including scalability, extensibility, and soundness of proof checking. In this paper, we propose a new design for proof assistants, in an attempt to address some of these difficulties. The new design is characterized by a pervasive use of macros in representing and checking proofs, and a foundational format for theory files based on JSON. We realize these ideas in a prototype proof assistant called holpy, implemented in Python. We also demonstrate how proof automation can be extended using Python under this framework. Finally, we present a case study about a simple imperative language.

READ FULL TEXT

page 9

page 10

page 11

page 13

page 14

page 15

research
07/08/2019

APML: An Architecture Proof Modeling Language

To address the increasing size and complexity of modern software systems...
research
10/30/2020

Teaching Interactive Proofs to Mathematicians

This work discusses an approach to teach to mathematicians the importanc...
research
12/28/2021

A proof system for graph (non)-isomorphism verification

In order to be able to apply graph isomorphism checking within interacti...
research
02/17/2021

Small, Fast, Concurrent Proof Checking for the lambda-Pi Calculus Modulo Rewriting

Several proof assistants, such as Isabelle or Coq, can concurrently chec...
research
05/06/2022

The Supervisionary proof-checking kernel (or: a work-in-progress towards proof generating code)

Interactive theorem proving software is typically designed around a trus...
research
01/10/2017

Towards Smart Proof Search for Isabelle

Despite the recent progress in automatic theorem provers, proof engineer...
research
05/04/2023

Towards a Scalable Proof Engine: A Performant Prototype Rewriting Primitive for Coq

We address the challenges of scaling verification efforts to match the i...

Please sign up or login with your details

Forgot password? Click here to reset