Call-by-Value Lambda Calculus as a Model of Computation in Coq

@article{Forster2018CallbyValueLC,
  title={Call-by-Value Lambda Calculus as a Model of Computation in Coq},
  author={Yannick Forster and Gert Smolka},
  journal={Journal of Automated Reasoning},
  year={2018},
  volume={63},
  pages={393-413}
}
  • Y. Forster, G. Smolka
  • Published 19 October 2018
  • Computer Science, Mathematics
  • Journal of Automated Reasoning
We formalise a (weak) call-by-value $$\lambda $$λ-calculus we call L in the constructive type theory of Coq and study it as a minimal functional programming language and as a model of computation. We show key results including (1) semantic properties of procedures are undecidable, (2) the class of total procedures is not recognisable, (3) a class is decidable if it is recognisable, corecognisable, and logically decidable, and (4) a class is recognisable if and only if it is enumerable. Most of… 
Introduction to Lambda Calculus
TLDR
Coq encompasses a typed version of the lambda calculus, the basic theoretical model for the study of syntactic expressions with bound variables and substitution, which is part of every programming language and are used in programming languages and logical languages with Bound variables.
Quantitative continuity and computable analysis in Coq
TLDR
A number of formal proofs of theorems from the field of computable analysis are given that the algebraic operations and the efficient limit operator on the reals are computable, and that certain countably infinite products are isomorphic to spaces of functions.
Continuous and monotone machines
TLDR
A variant of the fuel-based approach to modeling diverging computation in type theories is investigated and used to abstractly capture the essence of oracle Turing machines and it is proved that it is possible to translate back and forth between such machines and names in the standard function encoding used in computable analysis.
A Term-Rewriting Semantics for Imperative Style Programming
TLDR
A term rewriting based abstract programming language with an imperative style and a precise semantics allowing programs to be translatable into efficient imperative languages, to obtain proofs of correctness together with efficient execution.
9th International Symposium on Symbolic Computation in Software Science (SCSS 2021), short and work-in-progress papers
TLDR
This paper investigates the performance of different feature extraction methods, then incrementally projecting data in low variance directions, to find the best combination for accurate human face detection framework.
Church's thesis and related axioms in Coq's type theory
TLDR
The paper provides a partial answer to the question which axioms may preserve computational intuitions inherent to type theory, and which certainly do not, and is read as a broad survey ofAxioms in type theory.
Computable analysis and notions of continuity in Coq
TLDR
A number of formal proofs of theorems from the field of computable analysis are given that the algebraic operations and the efficient limit operator on the reals are computable, and that certain countably infinite products are isomorphic to spaces of functions.

References

SHOWING 1-10 OF 33 REFERENCES
Weak Call-by-Value Lambda Calculus as a Model of Computation in Coq
TLDR
A weak call-by-value \(\lambda \)-calculus is formalised in the constructive type theory of Coq and study it as a minimal functional programming language and as a model of computation.
The weak lambda calculus as a reasonable machine
Call-by-Name, Call-by-Value and the lambda-Calculus
  • G. Plotkin
  • Computer Science
    Theor. Comput. Sci.
  • 1975
Programming in the λ-Calculus: From Church to Scott and Back
  • J. M. Jansen
  • Computer Science
    The Beauty of Functional Code
  • 2013
TLDR
This paper shows how to convert programs written in functional programming languages like Clean and Haskell to closed λ-expressions by using the Scott-encoding for Algebraic Data Types instead of the more common Church encoding to obtain an encoding that is better comprehensible and also more efficient.
Typing Total Recursive Functions in Coq
TLDR
A (relatively) short mechanized proof that Coq types any recursive function which is provably total in Coq, and an unbounded minimization scheme for decidable predicates that can be used to reify a whole category of undecidable predicate.
Efficient Self-Interpretations in lambda Calculus
TLDR
This work gives a compact representation schema for λ-terms, and shows how this leads to an exceedingly small and elegant self-interpreter and self-reducer, and gives a constructive proof for the second fixed point theorem for the representation schema.
(Leftmost-Outermost) Beta Reduction is Invariant, Indeed
TLDR
The main technical contribution of the paper is indeed the definition of useful reductions and the thorough analysis of their properties, and the first complete positive answer to this long-standing problem.
A Sorted Semantic Framework for Applied Process Calculi
TLDR
This work extends previous work on psi-calculi with novel abstract patterns and pattern matching, and adds sorts to the data term language, giving sufficient criteria for subject reduction to hold, and proves standard congruence and structural properties of bisimulation.
Functional computation as concurrent computation
TLDR
It is proved that call- by-need complexity is dominated by call-by-value complexity, and the concurrent call-By-need model incorporates mutual recursion and can be extended to cyclic data structures by means of constraints.
A formalization of multi-tape Turing machines
...
1
2
3
4
...