Quantum Propagation Explorer.
To generate images like this, seePath Semantics
A research project in path semantics, a re-interpretation of functions for expressing mathematics
Notice! This project is advanced research and is about deriving mathematical theories for simplifying mathematics (such as programming languages and automated theorem provers). You should not expect to understand this research without at least a basic background knowledge in logic, philosophy, Category Theory and Homotopy Type Theory.
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.
For an experimental implementation of a small subset of Path Semantics, see Poi.
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.
"Let's go quantum" - (2020 slogan)
This repository is a brain dump of a lot of papers on ideas related to mathematics, logic, language and artificial intelligence.
- Reading sequences for learning Path Semantics
- Reading sequences for Artificial Intelligence and Safety Research
- Frequently Asked Questions
- Roadmap
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
- 2021-04-04 Deriving Path Semantics from First Principles
- 2020-08-20 Improving Brute Force Theorem Proving
- 2020-04-26 The Core Axiom
- 2020-01-18 The Secret Behind 2019 Logo
- 2018-12-09 Five Things You Should Know About Path Semantics
- 2017-08-25 Homotopy and Geometry
- 2017-07-20 Generalizing Path Semantics to Probability Theory
- 2017-06-28 Standardizing Path Semantics
- 2017-06-25 Progress on Existential Paths
- 2017-06-03 Perfect Intelligence
- 2017-05-29 Golden Rationality
- 2017-04-23 Existential Paths
- 2017-04-20 Slot Lambda Calculus
- 2017-03-24 Proving Non-Existence of Monoid Symmetric Paths
- 2017-02-20 New Algorithm for Inferring Equations
- 2015-07-03 Path Semantics
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:
- How functions are constructed and connected
- How to express relationships between functions in a more strict way than equations
- What can be predicted about output of functions from something about the input
- What it means to refer to a function (function identity)
- What you can do with functions, given some class of knowledge about them is available
- What kind of structures are related to some class of functions
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:
- Create efficient algorithms that find paths
- Find deductive rules
- Find rules for well formed expressions
- Find applicable areas (machine learning etc.)
- Find generalizations (probability theory etc.)