advancedresearch / path_semantics

A research project in path semantics, a re-interpretation of functions for expressing mathematics
MIT License
162 stars 13 forks source link
mathematical-logic research type-theory

and-andor

"Let's go quantum" - (2020 slogan)

To generate images like this, see Quantum Propagation Explorer.

Path Semantics

A research project in path semantics, a re-interpretation of functions for expressing mathematics

Join us on Discord!

Path Semantics is in relation to functional programming the analogue of theoretical physics is in relation to experimental physics. Theoretical physics is concerned about physics as a language and reducing physical phenomena to fundamental constants and theories. Likewise, Path Semantics is concerned about computation as language and reducing computational phenomena to fundamental concepts and theories. Just like theoretical physics, Path Semantics contains multiple domains where definitions in one domain are generalized to other domains. Path Semantics is not a single language, but a framework for mathematical language design, similar to how theoretical physics is not a single language, but a framework for physical theory design.

Here are some further analogues between theoretical physics and Path Semantics:

In fundamental physics, the language of theoretical physics and Path Semantics converges into one, by the bridge between Wolfram models (hypergraph rewriting) and constructive logic. Path Semantics goes deeper than Wolfram models into nature of computation/logic, less concerned about geometry, using Hegelean-ish philosophy from a Wittgenstein perspective of problematics between language and logic. Heidegger's philosophy is also useful in relation to language bias. So, if you are a philosopher trying to understand theoretical physics, then Path Semantics might be something for you!

The Path Semantics project has many not-yet-disputed contributions to mathematics. If you like to provide constructive criticism, then please open up issues! This can help us to bridge the gap to other mathematical theories.

Transcript of Talk "Introduction to Path Semantics" - This lecture was given to the Category Theory Study Group on the Applied Category Theory server (Discord).

Path Semantics started with reasoning about the syntax:

f[g] <=> h

Where f, g, h are functions.

For example:

and[not] <=> or
concat[len] <=> add

For an implementation, see Poi.

This repository is a brain dump of a lot of papers on ideas related to mathematics, logic, language and artificial intelligence.

Citing Path Semantics

@misc{Path-Semantics,
  author = {Sven Nilsen},
  title = {Re-interpretation of functions for expressing mathematics},
  url = {https://github.com/advancedresearch/path_semantics/},
  howpublished = {\url{https://advancedresearch.github.io/}}
}

Notice: This work has not yet been peer-reviewed,
except informally and partially checked by automated theorem provers.

Blog posts

What is path semantics?

Here is a cheat sheet to show how it looks like: Path Semantics Cheat Sheet

Functional programming has been an active research area for dependent types. In this notation, a new semantics that re-interprets functions takes a step beyond dependent types.

Very briefly, path semantics is about things like:

See the wiki for more information.

Why use path semantics?

Some problems require more powerful mathematical tools than others, e.g. AI safety research.
Path semantics grounds meaning in "intrinsic complexity" of functions, similar to computational type theory,
but builds up higher order concepts that stretches into the domain of philosophy.
Therefore, path semantics offers an integrated understanding of semantics spanning a wide area of applications.

An advantage of path semantics is that one can translate to and from other languages.
There are many such "bridges", from Logic to Lojban.
Among the most important connections is one between probability theory and computation,
which is formalized in path semantics.

Is this a new programming language?

A new kind of programming language, but for mathematical thinking.

Mathematical ideas are expressed in terms of functions, which are easier to program than e.g. sets. The purpose is to make mathematics more accessible and understandable in a way that relates to programming.

programming <------ path semantics ------> mathematics

Since programming and mathematis are very powerful tools on their own, it is often easier to use them to design domain specific languages for problem solving. However, doing so correctly, is easier by learning what mathematics can mean in terms of programming.

Goals: