Skip to content

Mathematical proofs in c++ by way of the Curry Howard isomorphism.

Notifications You must be signed in to change notification settings

DanielKrawisz/Truth

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 Cannot retrieve latest commit at this time.

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The Curry Howard isomorphism says that given a programming language with a expressive type system, a correspondence can be defined between propositions with types on the one hand, and proofs and programs on the other. In other words, we can express any mathematical claim as a type whose truth is proven by its instantiation. 

This means that a compiler can be used as a proof-checker. If the proof represented by the instantiation was invalid, then compilation should fail. 

Organization
 * There is some old experimental stuff I did in Scala a long time ago before I was fully prepared to build this thing for real. 
 * include/logic/intuitionistic.hpp : intuitionistic logic is a version of logic where propositions are about the existence of a proof rather than about truth. 
 * include/math/number/natural/peano.hpp : the peano axioms of the natural numbers. 
 
Further plans: 
 * finiteness
    * prime numbers
 * algebraic structures such as groups, rings, and fields. 
    * cyclic, symmetric, and alternating groups
    * integers and rationals
 * cauchy sequences
    * real numbers and calculus. 
 * linear algebra
    * complex numbers
    * affine spaces
    * exterior algebra
      * differentials
      * spinors
  * combine linear algebra and groups to get representation theory
  * combine linear algebra with algebra to get Galois theory
  * combine linear algebra with calculus to get differential geometry
  * finally can get to real math when comlplex analysis, differential geometry, and number theory all work together. 

About

Mathematical proofs in c++ by way of the Curry Howard isomorphism.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published