The Curry-Howard correspondence is a mapping between logic and type systems. On the one hand you have logic systems with propositions and proofs. On the other hand you have type systems with types and programs (or functions). As it turns out these two very different things have very similar rules. This article will explore the Curry-Howard correspondence by constructing a proof system using the Haskell type system (how appropriate since Haskell is named after Haskell Curry, the "Curry" in "Curry-Howard"). We'll set up the rules of logic using Haskell types and programs. Then we'll use these rules as an abstract interface to perform some logic profs.
Haskell's overloaded numerical classes can be (ab)used to do some symbolic maths. This is in no way a new discovery, but I thought I'd write a few lines about it anyway since I've been playing with it the last few days. First we need a data type to repres
DoCon is a program for symbolic computation in mathematics - package of modules DoCon joins the categorial approach to the mathematical computation expressed via the Haskell type classes, and explicit processing of the domain description terms. It implements recently a good piece of commutative algebra: linear algebra, polynomial gcd, factorization, Groebner bases, and other functions. They are programmed under the very generic assumptions , like "over any Euclidean ring", over any GCD-ring, any field, and so on. DoCon also supports the constructions on domains: Fraction, Polynomial, Residue ring, and others. That is certain set of operations on a constructed domain is built automatically.
Some of the things you can do with the GrassmannAlgebra software. You can: * Set up your own space of any dimension and metric. The default is a 3D Euclidean * Work basis-free or with a basis * Declare your own scalar symbols * Declare your own vector symbols: * Apply Grassmann operations. A Grassmann operation is any of: the complement operation and the six product operations: the exterior, regressive, interior, generalized Grassmann, hypercomplex and Clifford products. * Manipulate Grassmann expressions and numbers. A Grassmann expression is either a scalar, a Grassmann variable, or the result of a sequence of Grassmann operations or sums on Grassmann expressions. A Grassmann number is a Grassmann expression expressed as a linear combination of basis elements. * Compute the grade of any Grassmann expression. * Query the attributes of any expression. * Extract components of different types
In many problems that require extensive searching, the solution can be described as satisfying two competing constraints, where satisfying each independently does not pose a challenge. As an alternative to tree-based and stochastic searching, for these problems we propose using an iterated map built from the projections to the two constraint sets. Algorithms of this kind have been the method of choice in a large variety of signal-processing applications; we show here that the scope of these algorithms is surprisingly broad, with applications as diverse as protein folding and Sudoku.Our survey of applications shows the difference map algorithm often achieves results comparable to much more sophisticated, special purpose algorithms. Efficient implementations of constraint projections usually are easier than designing the linear program solver at the heart of many optimization algorithms.
MA 1114 - Conceptual Mathematics - Fall Semester 2006, Polytechnic University. Jonathan Bain * Syllabus * Lectures o 01. The Branches of Mathematics o 02. Paradoxes o 03. Greeks & Aristotle o 04. Calculus o 05. Proofs o 06. Naive Set Theory o 07. Ordinals and Cardinals o 08. Formal Set Theory o 09. Problems: The Skolem Paradox o 10. Problems: Godel's Incompleteness Theorems o 11. Category Theory: Intro o 12. Isomorphisms, Sections, Retractions o 13. More Categories o 14. Generalized Elements o 15. Terminal Objects & Initial Objects o 16. Products o 17. Sums