Hypergraph rewriting system with avatars for symbolic distinction

Overview

Avatar Hypergraph Rewriting

Hypergraph rewriting system with avatars for symbolic distinction

Based on paper Avatar Hypergraph Rewriting.

Avatars can be used on the left side of rewriting rules to control symbolic distinction of nodes in the hypergraph evolution. They can be used on any hyperedge.

Example: Wolfram vs Avatar

{}` let avatar_rule = Rule(vec![ava("a", 1), ava("b", 2)], vec![]); // prints `{0,0}` because avatars "a" and "b" must be different nodes. println!("{}", format(&avatar_rule.parallel(&a))); } ">
use avatar_hypergraph_rewriting::*;

use Expr::*;

fn main() {
    // `{0,0}`
   let a = vec![Nat(0), Nat(0)];

    // `{1,2} -> {}`
    let wolfram_rule = Rule(vec![Nat(1), Nat(2)], vec![]);
    // prints `{}` because `{0,0}` is reduced.
    println!("{}", format(&wolfram_rule.parallel(&a)));

    // `{a'(1),b'(2)} -> {}`
    let avatar_rule = Rule(vec![ava("a", 1), ava("b", 2)], vec![]);
    // prints `{0,0}` because avatars "a" and "b" must be different nodes.
    println!("{}", format(&avatar_rule.parallel(&a)));
}

Motivation

Avatar Hypergraph Rewriting (AHR) is an attempt to find an Avatar Extension of Wolfram models that satisfies the assumptions in the paper Consciousness in Wolfram Models.

Wolfram models are used in the Wolfram Physics Project, which seeks to explain fundamental physics using a hypergraph rewriting system.

Wolfram models correspond to theorem proving with Intuitionistic Propositional Logic (IPL), which can be generalised to Homotopy Type Theory. For more information, see this paper by Xerxes D. Arsiwalla and Jonathan Gorard.

IPL is the foundation for Type Theory and modern mathematical foundations. IPL is weaker than Propositional Logic (PL).

  • PL is called "classical" logic and satisfies a Boolean algebra
  • IPL is called "constructive" logic and satisfies a Heyting algebra

However, in Path Semantics there is an even weaker logic called Path Semantical Intuitionistic Propositional Logic (PSI).

PSI is much less understood than IPL and PL, but is relevant for the philosophy of mathematical language design. One thing that makes PSI different from IPL is that a quality operator ~~ lifts biconditions with symbolic distinction (quality is a partial equivalence).

A closely related research topic to PSI is Avatar Extensions.

This hypergraph rewriting system combines the property of symbolic distinction with avatars. The avatars is a design choice to express symbolic distinction efficiently.

You might also like...
A symbolic-model-guided fuzzer for TLS
A symbolic-model-guided fuzzer for TLS

tlspuffin TLS Protocol Under FuzzINg A symbolic-model-guided fuzzer for TLS Master Thesis | Thesis Presentation | Documentation Description Fuzzing im

A tool for quickly switching between different file configurations, using symbolic links.

config-loader A tool for quickly switching between different file configurations, using symbolic links. Usage To use it, download the latest release f

symbolic execution engine for Rust

Seer: Symbolic Execution Engine for Rust Seer is a fork of miri that adds support for symbolic execution, using z3 as a solver backend. Given a progra

Symbolic execution of LLVM IR with an engine written in Rust

haybale: Symbolic execution of LLVM IR, written in Rust haybale is a general-purpose symbolic execution engine written in Rust. It operates on LLVM IR

Rust bindings to the Wolfram Symbolic Transport Protocol (WSTP)

wstp Bindings to the Wolfram Symbolic Transfer Protocol (WSTP) library. This crate provides a set of safe and ergonomic bindings to the WSTP library,

Framework and Language for Neuro-Symbolic Programming
Framework and Language for Neuro-Symbolic Programming

Scallop Scallop is a declarative language designed to support rich symbolic reasoning in AI applications. It is based on Datalog, a logic rule-based q

Symbolic EVM in Rust (WIP)

Ser Symbolic EVM in Rust Introduction Ser's design is informed by lessons I learned from a previous attempt to build a highly abstract & generalized s

Pet project to get acquainted with Rust, and mess around with symbolic expressions.

Symba Pet project to get acquainted with Rust, and to mess around with symbolic expressions, hence the name 'Symba'. Example: use asg::{deftree, r

A lightweight microkernel/IPC based operating system built with Rust which is not a clone of any existing operating system
A lightweight microkernel/IPC based operating system built with Rust which is not a clone of any existing operating system

Noble Operating System Noble is a lightweight microkernel and IPC based operating system built with Rust which is not a clone of any existing operatin

Elemental System Designs is an open source project to document system architecture design of popular apps and open source projects that we want to study
Elemental System Designs is an open source project to document system architecture design of popular apps and open source projects that we want to study

Elemental System Designs is an open source project to document system architecture design of popular apps and open source projects that we want to study

Experimental package manager/system configurator for system hoppers

mascara An experimental package manager/config initializer tool for system hoppers. mascara.toml [mascara] feature = "Debian" logs = { stdout = "blue"

Writing an OS in Rust, To Study Operating System and Computer System

Hun Os Writing an OS in Rust, To Study Operating System and Computer System Reference Os Written In Rust https://github.com/seonghun-dev/blog_os https

First project in rust which will be to make an accounts system & Leaderboard/Score system

rust-backend this is my first project in rust which will be to make a backend for compsci project it will include: Accounts, Player Achievements (if I

A system to programmatically run data pipelines

Factotum A dag running tool designed for efficiently running complex jobs with non-trivial dependency trees. The zen of Factotum A Turing-complete job

A secure embedded operating system for microcontrollers

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded

A secure embedded operating system for microcontrollers

Tock is an embedded operating system designed for running multiple concurrent, mutually distrustful applications on Cortex-M and RISC-V based embedded

A hobby operating system, in Rust

intermezzOS: kernel intermezzOS is a hobby operating system. This repository is for its kernel. See the website for more. License This project is dual

The Stupid Operating System

Stupid Operating System SOS is a simple, tiny toy OS implemented in Rust. I'm writing this mostly for fun, to learn more about OS design and kernel ha

A TUI system monitor written in Rust
A TUI system monitor written in Rust

NO LONGER MAINTAINED. For a similar program, check out https://github.com/ClementTsang/bottom. ytop Another TUI based system monitor, this time in Rus

Owner
AdvancedResearch
A research branch of the Piston project (https://www.piston.rs/)
AdvancedResearch
3D Solar System visualization

Description This project is an unrealistic 3D Solar System visualization. It was made for Computer graphics course, that I took at the University of W

Michał Sala 1 Feb 22, 2022
Hypergraph is data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices.

Hypergraph is data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices.

Davy Duperron 224 Dec 21, 2022
Easy c̵̰͠r̵̛̠ö̴̪s̶̩̒s̵̭̀-t̶̲͝h̶̯̚r̵̺͐e̷̖̽ḁ̴̍d̶̖̔ ȓ̵͙ė̶͎ḟ̴͙e̸̖͛r̶̖͗ë̶̱́ṉ̵̒ĉ̷̥e̷͚̍ s̷̹͌h̷̲̉a̵̭͋r̷̫̊ḭ̵̊n̷̬͂g̵̦̃ f̶̻̊ơ̵̜ṟ̸̈́ R̵̞̋ù̵̺s̷̖̅ţ̸͗!̸̼͋

Rust S̵̓i̸̓n̵̉ I̴n̴f̶e̸r̵n̷a̴l mutability! Howdy, friendly Rust developer! Ever had a value get m̵̯̅ð̶͊v̴̮̾ê̴̼͘d away right under your nose just when

null 294 Dec 23, 2022
Hypergraph is a data structure library to generate directed hypergraphs.

Hypergraph is data structure library to create a directed hypergraph in which a hyperedge can join any number of vertices.

Davy Duperron 112 Aug 24, 2021
A pure, low-level tensor program representation enabling tensor program optimization via program rewriting

Glenside is a pure, low-level tensor program representation which enables tensor program optimization via program rewriting, using rewriting frameworks such as the egg equality saturation library.

Gus Smith 45 Dec 28, 2022
Shellharden is a syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting

Shellharden is a syntax highlighter and a tool to semi-automate the rewriting of scripts to ShellCheck conformance, mainly focused on quoting

Andreas Nordal 4.3k Dec 28, 2022
A rewriting of Duniter based on Substrate framework

Duniter v2s A rewriting of Duniter based on Substrate framework. duniter-v2s is under active development, only a test network called "ĞDev" is deploye

Duniter 9 Dec 15, 2022
Best-effort attempt at rewriting Reticulum in Rust.

reticulum-rs WIP rewrite of Reticulum in Rust explicitly targeted at the ESP32 (no tokio, avoids memory-inefficient data structures. etc). Not ready f

Ellen Poe 8 Sep 25, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
A HDPSG-inspired symbolic natural language parser written in Rust

Treebender A symbolic natural language parsing library for Rust, inspired by HDPSG. What is this? This is a library for parsing natural or constructed

Theia Vogel 32 Dec 26, 2022