Check Your (Students') Proofs-With Holes

09/02/2020
by   Dennis Renz, et al.
0

Cyp (Check Your Proofs) (Durner and Noschinski 2013; Traytel 2019) verifies proofs about Haskell-like programs. We extended Cyp with a pattern matcher for programs and proof terms, and a type checker. This allows to use Cyp for auto-grading exercises where the goal is to complete programs and proofs that are partially given by the instructor, as terms with holes. Since this allows holes in programs, type-checking becomes essential. Before, Cyp assumed that the program was written by a type-correct instructor, and therefore omitted type-checking of proofs. Cyp gracefully handles incomplete student submissions. It accepts holes temporarily, and checks complete subtrees fully. We present basic design decisions, make some remarks on implementation, and include example exercises from a recent course that used Cyp as part of the Leipzig Autotool auto-grading system.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
11/13/2017

A Type Checking Algorithm for Higher-rank, Impredicative and Second-order Types

We study a type checking algorithm that is able to type check a nontrivi...
research
09/11/2019

The Marriage of Univalence and Parametricity

Reasoning modulo equivalences is natural for everyone, including mathema...
research
07/20/2022

Auto-active Verification of Graph Algorithms, Written in OCaml

Functional programming offers the perfect ground for building correct-by...
research
06/09/2023

A Complete Proof Synthesis Method for the Cube of Type Systems

We present a complete proof synthesis method for the eight type systems ...
research
10/30/2020

Programming Metamorphic Algorithms: An Experiment in Type-Driven Algorithm Design

In dependently typed programming, proofs of basic, structural properties...
research
01/10/2019

PML 2 : Integrated Program Verification in ML

We present the PML 2 language, which provides a uniform environment for ...
research
11/10/2022

Translating proofs from an impredicative type system to a predicative one

As the development of formal proofs is a time-consuming task, it is impo...

Please sign up or login with your details

Forgot password? Click here to reset