If You Build It, They Will Come
Technical Reports by Steven Obua
April 1, 2023
Logic is Algebra
Logic really is just algebra, given one uses the right kind of algebra, and the right kind of logic. The right kind of algebra is abstraction algebra, and the right kind of logic is abstraction logic.
February 5, 2023
Axioms Are Inference Rules
As it turns out, Abstraction Logic's axioms should be more general than initially thought.
Instead of just terms, they should be inference rules.
February 4, 2023
A First Look At Practal
The first release of Practal as a Visual Studio Code Extension is out!
It is an early and experimental release without its most crucial functionality of proving and computing,
but it has syntax highlighting and the ability to define your own syntax.
It is already possible to state declarations, definitions and axioms, and definitions are properly checked.
April 10, 2022
Video: Abstraction Logic (UNILOG 2022)
This is a rerecording of my talk about Abstraction Logic at the UNILOG 2022 conference in Crete.
March 24, 2022
Indentation-Sensitive Parsing with Pyramids
This is a short note about combining indentation-sensitivity and pyramid grammars. We describe the syntax of indentation-sensitive pyramid grammars by one such grammar.
March 23, 2022
Automating Abstraction Logic
We describe how to automate Abstraction Logic by translating it to the TPTP THF format.
December 21, 2021 (last revised December 23, 2021)
Philosophy of Abstraction Logic
Abstraction Logic has been introduced in a previous, rather technical article. In this article we take a step back and look at Abstraction Logic from a conceptual point of view. This will make it easier to appreciate the simplicity, elegance, and pragmatism of Abstraction Logic. We will argue that Abstraction Logic is the best logic for serving as a foundation of mathematics.
October 22, 2021 (last revised November 14, 2021)
Abstraction Logic is introduced as a foundation for Practical Types
. It combines the simplicity of ﬁrst-order logic with direct support for variable binding constants called abstractions. It also allows free variables to depend on parameters, which means that ﬁrst-order axiom schemata can be encoded as simple axioms. Conceptually abstraction logic is situated between ﬁrst-order logic and second-order logic. It is sound with respect to an intuitive and simple algebraic semantics. Completeness holds for both intuitionistic and classical abstraction logic, and all abstraction logics in between and beyond.
July 29, 2021
These are preliminary notes about Practal’s logic and its system of practical types. This is ongoing research, and I expect updates to this document over time. Practal Light is a research prototype implementing (part of) what is presented in this document.
July 17, 2021
Practal — Practical Logic
This is a ﬁrst sketch of the design of Practal, an interactive theorem proving system for practical logic.
May 18, 2021
A New Semantics for Local Lexing
A revised semantics for Local Lexing is presented that entirely avoids priority conﬂicts between non-empty tokens. Pyramid Grammars are introduced, and their semantics is given in terms of Local Lexing. It is demonstrated that they are more expressive than Context-Free Grammars, and at least as expressive as Parsing Expression Grammars.
April 14, 2021 (last revised July 1, 2021)
I propose a simple Unicode-based lexical syntax for programming language identiﬁers using characters from international scripts (currently Latin, Greek, Cyrillic and Math). Such cosmopolitan identiﬁers are designed to achieve much of the simplicity of Fortran identiﬁers while acknowledging a modern international outlook. This seems particularly advantageous in contexts where such identiﬁers are not (only) used by professional programmers, but are exposed to normal users, for example through scriptable applications.