Corpus ID: 118400145

Programming Up to Congruence (Extended version)

@inproceedings{Sjberg2014ProgrammingUT,
  title={Programming Up to Congruence (Extended version)},
  author={Vilhelm Sj{\"o}berg and Stephanie Weirich},
  year={2014}
}
This paper presents the design of ZOMBIE, a dependently-typed programming language that uses an adaptation of a congruence closure algorithm for proof and type inference. This algorithm allows the type checker to automatically use equality assumptions from the context when reasoning about equality. Most dependently typed languages automatically use equalities that follow from -reduction during type checking; however, such reasoning is incompatible with congruence closure. In contrast, ZOMBIE… Expand
Programming up to Congruence
TLDR
The design of Zombie is presented, a dependently-typed programming language that uses an adaptation of a congruence closure algorithm for proof and type inference that allows the type checker to automatically use equality assumptions from the context when reasoning about equality. Expand
Programming up to Congruence Vilhelm Sjöberg
This paper presents the design of ZOMBIE, a dependently-typed programming language that uses an adaptation of a congruence closure algorithm for proof and type inference. This algorithm allows theExpand

References

SHOWING 1-10 OF 32 REFERENCES
The Implicit Calculus of Constructions as a Programming Language with Dependent Types
TLDR
This paper shows how Miquel's Implicit Calculus of Constructions can be used as a programming language featuring dependent types and introduces a more verbose variant, called ICC* which fixes the issue of an undecidable type-checking. Expand
Semantic subtyping with an SMT solver
TLDR
A novel type-checking algorithm able to eliminate many dynamic tests and to detect many errors statically is presented, to rely on an SMT solver to compute subtyping efficiently. Expand
Algebra of programming in Agda: Dependent types for relational program derivation
TLDR
A library, AoPA (Algebra of Programming in Agda), is developed, to encode relational derivations in the dependently typed programming language Agda, to express various correctness properties to be verified by the type checker. Expand
Observational equality, now!
TLDR
The new proposal simplifies Altenkirch's construction of a setoid-model for a system with canonicity and extensionality on top of an intensional type theory with proof-irrelevant propositions by adopting McBride's heterogeneous approach to equality. Expand
Fast congruence closure and extensions
TLDR
A very simple and clean incremental congruence closure algorithm that runs in the best known time O(n logn) and can be smoothly extended, while still obtaining the same asymptotic time bounds, in order to support the interpreted functions symbols successor and predecessor. Expand
Ott: effective tool support for the working semanticist
TLDR
The aim with this work is to enable a phase change: making it feasible to work routinely, without heroic effort, with rigorous semantic definitions of realistic languages. Expand
Secure distributed programming with value-dependent types
TLDR
F*, a full-fledged design and implementation of a new dependently typed language for secure distributed programming that provides arbitrary recursion while maintaining a logically consistent core, and enables modular reasoning about state and other effects using affine types is presented. Expand
Type-theoretic methodology for practical programming languages
The significance of type theory to the theory of programming languages has long been recognized. Advances in programming languages have often derived from understanding that stems from type theory.Expand
Deciding Joinability Modulo Ground Equations In Operational Type Theory
Operational Type The ory (OpTT ) can be used to construct and check proofs related to programs, but the development of these proofs can be somewhat tedious. An algorithm is presented that can be usedExpand
Static and user-extensible proof checking
TLDR
This paper builds on existing work, and demonstrates two novel ideas: an extensible conversion rule and support for static proof scripts, which enable both user-extensible proof checking, and sophisticated static checking of tactics, leading to a new point in the design space of future proof assistants. Expand
...
1
2
3
4
...