en.unionpedia.org

Dependent type, the Glossary

Index Dependent type

In computer science and logic, a dependent type is a type whose definition depends on a value.[1]

Table of Contents

  1. 69 relations: Ada (programming language), Agda (programming language), ATS (programming language), C (programming language), Calculus of constructions, Cartesian product, Codomain, Combinatory logic, Computer science, Constructive proof, Coq (software), Curry–Howard correspondence, Decision problem, Dependent ML, Dual (category theory), Epigram (programming language), Equality (mathematics), F Sharp (programming language), F* (programming language), First-order logic, Formal verification, Function (computer programming), Function type, Functional programming, Generalized quantifier, Generic programming, GitHub, Haskell, Haskell Curry, Henk Barendregt, Idris (programming language), If and only if, Intuitionistic logic, Intuitionistic type theory, Journal of Functional Programming, Kind (type theory), Lambda cube, Lean (proof assistant), Lennart Augustsson, Logic, Logic programming, Logical framework, Matita, Model theory, Natural number, Nicolaas Govert de Bruijn, Nuprl, OCaml, Oxford University Press, Polymorphism (computer science), ... Expand index (19 more) »

  2. Dependently typed programming
  3. Foundations of mathematics
  4. Type systems

Ada (programming language)

Ada is a structured, statically typed, imperative, and object-oriented high-level programming language, inspired by Pascal and other languages.

See Dependent type and Ada (programming language)

Agda (programming language)

Agda is a dependently typed functional programming language originally developed by Ulf Norell at Chalmers University of Technology with implementation described in his PhD thesis.

See Dependent type and Agda (programming language)

ATS (programming language)

In computing, ATS (Applied Type System) is a multi-paradigm, general-purpose, high-level, functional programming language.

See Dependent type and ATS (programming language)

C (programming language)

C (pronounced – like the letter c) is a general-purpose programming language.

See Dependent type and C (programming language)

Calculus of constructions

In mathematical logic and computer science, the calculus of constructions (CoC) is a type theory created by Thierry Coquand. Dependent type and calculus of constructions are dependently typed programming and type theory.

See Dependent type and Calculus of constructions

Cartesian product

In mathematics, specifically set theory, the Cartesian product of two sets and, denoted, is the set of all ordered pairs where is in and is in.

See Dependent type and Cartesian product

Codomain

In mathematics, a codomain or set of destination of a function is a set into which all of the output of the function is constrained to fall.

See Dependent type and Codomain

Combinatory logic

Combinatory logic is a notation to eliminate the need for quantified variables in mathematical logic.

See Dependent type and Combinatory logic

Computer science

Computer science is the study of computation, information, and automation.

See Dependent type and Computer science

Constructive proof

In mathematics, a constructive proof is a method of proof that demonstrates the existence of a mathematical object by creating or providing a method for creating the object.

See Dependent type and Constructive proof

Coq (software)

Coq is an interactive theorem prover first released in 1989.

See Dependent type and Coq (software)

Curry–Howard correspondence

In programming language theory and proof theory, the Curry–Howard correspondence (also known as the Curry–Howard isomorphism or equivalence, or the proofs-as-programs and propositions- or formulae-as-types interpretation) is the direct relationship between computer programs and mathematical proofs. Dependent type and Curry–Howard correspondence are dependently typed programming and type theory.

See Dependent type and Curry–Howard correspondence

Decision problem

In computability theory and computational complexity theory, a decision problem is a computational problem that can be posed as a yes–no question of the input values.

See Dependent type and Decision problem

Dependent ML

Dependent ML is an experimental, multi-paradigm, general-purpose, high-level, functional programming language proposed by Hongwei Xi and Frank Pfenning.

See Dependent type and Dependent ML

Dual (category theory)

In category theory, a branch of mathematics, duality is a correspondence between the properties of a category C and the dual properties of the opposite category Cop.

See Dependent type and Dual (category theory)

Epigram (programming language)

Epigram is a functional programming language with dependent types, and the integrated development environment (IDE) usually packaged with the language.

See Dependent type and Epigram (programming language)

Equality (mathematics)

In mathematics, equality is a relationship between two quantities or, more generally, two mathematical expressions, asserting that the quantities have the same value, or that the expressions represent the same mathematical object.

See Dependent type and Equality (mathematics)

F Sharp (programming language)

F# (pronounced F sharp) is a general-purpose, high-level, strongly typed, multi-paradigm programming language that encompasses functional, imperative, and object-oriented programming methods.

See Dependent type and F Sharp (programming language)

F* (programming language)

F* (pronounced F star) is a high-level, multi-paradigm, functional and object-oriented programming language inspired by the languages ML, Caml, and OCaml, and intended for program verification.

See Dependent type and F* (programming language)

First-order logic

First-order logic—also called predicate logic, predicate calculus, quantificational logic—is a collection of formal systems used in mathematics, philosophy, linguistics, and computer science.

See Dependent type and First-order logic

Formal verification

In the context of hardware and software systems, formal verification is the act of proving or disproving the correctness of a system with respect to a certain formal specification or property, using formal methods of mathematics.

See Dependent type and Formal verification

Function (computer programming)

In computer programming, a function, procedure, method, subroutine, routine, or subprogram is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times.

See Dependent type and Function (computer programming)

Function type

In computer science and mathematical logic, a function type (or arrow type or exponential) is the type of a variable or parameter to which a function has or can be assigned, or an argument or result type of a higher-order function taking or returning a function. Dependent type and function type are type theory.

See Dependent type and Function type

Functional programming

In computer science, functional programming is a programming paradigm where programs are constructed by applying and composing functions.

See Dependent type and Functional programming

Generalized quantifier

In formal semantics, a generalized quantifier (GQ) is an expression that denotes a set of sets.

See Dependent type and Generalized quantifier

Generic programming

Generic programming is a style of computer programming in which algorithms are written in terms of data types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.

See Dependent type and Generic programming

GitHub

GitHub is a developer platform that allows developers to create, store, manage and share their code.

See Dependent type and GitHub

Haskell

Haskell is a general-purpose, statically-typed, purely functional programming language with type inference and lazy evaluation.

See Dependent type and Haskell

Haskell Curry

Haskell Brooks Curry (September 12, 1900 – September 1, 1982) was an American mathematician and logician.

See Dependent type and Haskell Curry

Henk Barendregt

Hendrik Pieter (Henk) Barendregt (born 18 December 1947, Amsterdam) is a Dutch logician, known for his work in lambda calculus and type theory.

See Dependent type and Henk Barendregt

Idris (programming language)

Idris is a purely-functional programming language with dependent types, optional lazy evaluation, and features such as a totality checker.

See Dependent type and Idris (programming language)

If and only if

In logic and related fields such as mathematics and philosophy, "if and only if" (often shortened as "iff") is paraphrased by the biconditional, a logical connective between statements.

See Dependent type and If and only if

Intuitionistic logic

Intuitionistic logic, sometimes more generally called constructive logic, refers to systems of symbolic logic that differ from the systems used for classical logic by more closely mirroring the notion of constructive proof.

See Dependent type and Intuitionistic logic

Intuitionistic type theory

Intuitionistic type theory (also known as constructive type theory, or Martin-Löf type theory, the latter abbreviated as MLTT) is a type theory and an alternative foundation of mathematics. Dependent type and Intuitionistic type theory are dependently typed programming, foundations of mathematics and type theory.

See Dependent type and Intuitionistic type theory

Journal of Functional Programming

The Journal of Functional Programming is a peer-reviewed scientific journal covering the design, implementation, and application of functional programming languages, spanning the range from mathematical theory to industrial practice.

See Dependent type and Journal of Functional Programming

Kind (type theory)

In the area of mathematical logic and computer science known as type theory, a kind is the type of a type constructor or, less commonly, the type of a higher-order type operator. Dependent type and kind (type theory) are type theory.

See Dependent type and Kind (type theory)

Lambda cube

In mathematical logic and type theory, the λ-cube (also written lambda cube) is a framework introduced by Henk Barendregt to investigate the different dimensions in which the calculus of constructions is a generalization of the simply typed λ-calculus. Dependent type and lambda cube are type theory.

See Dependent type and Lambda cube

Lean (proof assistant)

Lean is a proof assistant and a functional programming language.

See Dependent type and Lean (proof assistant)

Lennart Augustsson

Lennart Augustsson is a Swedish computer scientist.

See Dependent type and Lennart Augustsson

Logic

Logic is the study of correct reasoning.

See Dependent type and Logic

Logic programming

Logic programming is a programming, database and knowledge representation paradigm based on formal logic.

See Dependent type and Logic programming

Logical framework

In logic, a logical framework provides a means to define (or present) a logic as a signature in a higher-order type theory in such a way that provability of a formula in the original logic reduces to a type inhabitation problem in the framework type theory. Dependent type and logical framework are dependently typed programming and type theory.

See Dependent type and Logical framework

Matita

Matita is an experimental proof assistant under development at the Computer Science Department of the University of Bologna.

See Dependent type and Matita

Model theory

In mathematical logic, model theory is the study of the relationship between formal theories (a collection of sentences in a formal language expressing statements about a mathematical structure), and their models (those structures in which the statements of the theory hold).

See Dependent type and Model theory

Natural number

In mathematics, the natural numbers are the numbers 0, 1, 2, 3, etc., possibly excluding 0.

See Dependent type and Natural number

Nicolaas Govert de Bruijn

Nicolaas Govert "Dick" de Bruijn (9 July 1918 – 17 February 2012) was a Dutch mathematician, noted for his many contributions in the fields of analysis, number theory, combinatorics and logic.

See Dependent type and Nicolaas Govert de Bruijn

Nuprl

Nuprl is a proof development system, providing computer-mediated analysis and proofs of formal mathematical statements, and tools for software verification and optimization.

See Dependent type and Nuprl

OCaml

OCaml (formerly Objective Caml) is a general-purpose, high-level, multi-paradigm programming language which extends the Caml dialect of ML with object-oriented features.

See Dependent type and OCaml

Oxford University Press

Oxford University Press (OUP) is the publishing house of the University of Oxford.

See Dependent type and Oxford University Press

Polymorphism (computer science)

In programming language theory and type theory, polymorphism is the use of a single symbol to represent multiple different types. Dependent type and polymorphism (computer science) are type theory.

See Dependent type and Polymorphism (computer science)

Predicate (mathematical logic)

In logic, a predicate is a symbol that represents a property or a relation.

See Dependent type and Predicate (mathematical logic)

Product type

In programming languages and type theory, a product of types is another, compounded, type in a structure. Dependent type and product type are type theory.

See Dependent type and Product type

Proof assistant

In computer science and mathematical logic, a proof assistant or interactive theorem prover is a software tool to assist with the development of formal proofs by human–machine collaboration.

See Dependent type and Proof assistant

Proof-carrying code

Proof-carrying code (PCC) is a software mechanism that allows a host system to verify properties about an application via a formal proof that accompanies the application's executable code. Dependent type and proof-carrying code are dependently typed programming.

See Dependent type and Proof-carrying code

Propositional calculus

The propositional calculus is a branch of logic.

See Dependent type and Propositional calculus

Prototype Verification System

The Prototype Verification System (PVS) is a specification language integrated with support tools and an automated theorem prover, developed at the Computer Science Laboratory of SRI International in Menlo Park, California.

See Dependent type and Prototype Verification System

Pure type system

In the branches of mathematical logic known as proof theory and type theory, a pure type system (PTS), previously known as a generalized type system (GTS), is a form of typed lambda calculus that allows an arbitrary number of sorts and dependencies between any of these. Dependent type and pure type system are type theory.

See Dependent type and Pure type system

Purely functional programming

In computer science, purely functional programming usually designates a programming paradigm—a style of building the structure and elements of computer programs—that treats all computation as the evaluation of mathematical functions.

See Dependent type and Purely functional programming

Real number

In mathematics, a real number is a number that can be used to measure a continuous one-dimensional quantity such as a distance, duration or temperature.

See Dependent type and Real number

Scheme (programming language)

Scheme is a dialect of the Lisp family of programming languages.

See Dependent type and Scheme (programming language)

Simply typed lambda calculus

The simply typed lambda calculus (\lambda^\to), a form of type theory, is a typed interpretation of the lambda calculus with only one type constructor (\to) that builds function types. Dependent type and simply typed lambda calculus are type theory.

See Dependent type and Simply typed lambda calculus

System F

System F (also polymorphic lambda calculus or second-order lambda calculus) is a typed lambda calculus that introduces, to simply typed lambda calculus, a mechanism of universal quantification over types. Dependent type and System F are type theory.

See Dependent type and System F

Termination analysis

In computer science, termination analysis is program analysis which attempts to determine whether the evaluation of a given program halts for each input.

See Dependent type and Termination analysis

Twelf

Twelf is an implementation of the logical framework LF developed by Frank Pfenning and Carsten Schürmann at Carnegie Mellon University. Dependent type and Twelf are type theory.

See Dependent type and Twelf

Type system

In computer programming, a type system is a logical system comprising a set of rules that assigns a property called a ''type'' (for example, integer, floating point, string) to every term (a word, phrase, or other set of symbols). Dependent type and type system are type systems and type theory.

See Dependent type and Type system

Type theory

In mathematics and theoretical computer science, a type theory is the formal presentation of a specific type system.

See Dependent type and Type theory

Typed lambda calculus

A typed lambda calculus is a typed formalism that uses the lambda-symbol (\lambda) to denote anonymous function abstraction. Dependent type and typed lambda calculus are type theory.

See Dependent type and Typed lambda calculus

Universe (mathematics)

In mathematics, and particularly in set theory, category theory, type theory, and the foundations of mathematics, a universe is a collection that contains all the entities one wishes to consider in a given situation.

See Dependent type and Universe (mathematics)

William Alvin Howard

William Alvin Howard (born 1926) is a proof theorist best known for his work demonstrating formal similarity between intuitionistic logic and the simply typed lambda calculus that has come to be known as the Curry–Howard correspondence.

See Dependent type and William Alvin Howard

See also

Dependently typed programming

Foundations of mathematics

Type systems

References

[1] https://en.wikipedia.org/wiki/Dependent_type

Also known as Comparision of programming languages with dependent types, Comparison of dependently typed programming languages, Comparison of programming languages with dependent types, Dependent type theory, Dependent types, Dependent typing, Dependently typed, Dependently typed language, Dependently typed programming, Dependently typed programming language, Dependently-typed, Dependently-typed language, Dependently-typed programming language, List of dependently-typed programming languages, Sigma type, Type-level programming, ΛΠ-calculus.

, Predicate (mathematical logic), Product type, Proof assistant, Proof-carrying code, Propositional calculus, Prototype Verification System, Pure type system, Purely functional programming, Real number, Scheme (programming language), Simply typed lambda calculus, System F, Termination analysis, Twelf, Type system, Type theory, Typed lambda calculus, Universe (mathematics), William Alvin Howard.