If You Build It, They Will Come
Technical Reports by Steven Obua
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.