# Functional Pearl: Witness Me - Constructive Arguments Must Be Guided with Concrete Witness

@article{Ishii2021FunctionalPW, title={Functional Pearl: Witness Me - Constructive Arguments Must Be Guided with Concrete Witness}, author={Hiromi Ishii}, journal={ArXiv}, year={2021}, volume={abs/2103.11751} }

Beloved Curry–Howard correspondence tells that types are intuitionistic propositions, and in constructivemath, a proof of proposition can be seen as some kind of a construction, or witness, conveying the information of the proposition. We demonstrate how useful this point of view is as the guiding principle for developing dependently-typed programs. CCS Concepts: • Theory of computation → Constructive mathematics; Type theory; Logic and verification.

## References

SHOWING 1-10 OF 24 REFERENCES

Ghosts of departed proofs (functional pearl)

- Computer ScienceHaskell@ICFP
- 2018

This paper introduces an API design concept called ``ghosts of departed proofs'' based on the following observation: sophisticated preconditions can be encoded in Haskell's type system with no run-time overhead, by using proofs that inhabit phantom type parameters attached to newtype wrappers.

Hasochism: the pleasure and pain of dependently typed haskell programming

- Computer ScienceHaskell '13
- 2013

This paper collate and classify techniques for programming with dependent types in Haskell, and shows how to exploit Haskell's constraint solver as a theorem prover, delivering code which, as Agda programmers, they envy.

Fun with Type Functions

- Computer ScienceReflections on the Work of C. A. R. Hoare
- 2010

A programmer's tour of so-calledtype families, a recent extension to Haskell that allows functions on types to be expressed as straightforwardly as functions on values, makes it easier for programmers to effectively extend the compiler by writing functional programs that execute during type checking.

Coherent explicit dictionary application for Haskell

- Computer ScienceHaskell@ICFP
- 2018

A novel criterion based on GHC's type argument roles to decide when a dictionary application is safe with respect to global uniqueness of instances is introduced, which preserves coherence by detecting potential sources of incoherence, and proves it formally.

Giving Haskell a promotion

- Computer ScienceTLDI '12
- 2012

An experiment is described that enriches Haskell's kind system with two features promoted from its type system: data types and polymorphism.

Functional pearl: implicit configurations--or, type classes reflect the values of types

- Computer ScienceHaskell '04
- 2004

This work solves the configurations problem in Haskell using only stable and widely implemented language features like the type-class system, and can be regarded as a portable, coherent, and intuitive alternative to implicit parameters.

Dependently typed programming with singletons

- Computer ScienceHaskell '12
- 2012

The singletons library is presented, which generates the boilerplate code necessary for dependently typed programming using GHC and suggestions for future extensions to better support this style of programming are suggested.

Propositions as types

- PhilosophyCommun. ACM
- 2015

Connecting mathematical logic and computation, it ensures that some aspects of programming are absolute.

konn/demotion-paper. h ps://github.com/konn/demotion-paper

- 2021

2012–2013. singletons. h p://hackage.haskell.org/package/singletons

- 2013