A symbolic and algebraic computation based Lambda-Boolean reduction machine via PROLOG
Introduction
The lambda calculus or λ-calculus shortly, is a formal system designed to investigate function, function application and recursion. It was introduced by Alonzo Church and Stephen Cole Kleene in the late 1930s and early 1940s [1], [6]. The calculus can be used to cleanly define what a computable function is [4]. The question of whether two lambda calculus expressions are equivalent cannot be solved by a general algorithm, and this was the first question, even before the halting problem, for which undecidability could be proved. Lambda calculus has greatly influenced logical programming languages as Lisp and Prolog [2].
The λ-Boolean theory is mainly concerned with λ-Boolean functions and their applications in the analysis of recursively defined λ-Boolean which represents Boolean functions. Their principal feature is that they are higher-order, that is, they give a systematic notation for Boolean operators and functions whose input and output values may be other Boolean operators or functions. Also, they are not based on the concept of set as Boolean algebra, but on that of function, or operator [7].
In particular, the fact that λ-Boolean calculus is based on the concepts of “Boolean operator”, “Boolean operation” and “λ-Boolean substitution axioms” in the context of λ-calculus. The concepts at the very heart of computer logic design make it particularly useful.
λ-Boolean calculus is also based on Boolean recursion in the context of λ-calculus. The concept of recursion is central in computer science, both for the theorists and practitioners [5].
In this paper, we will present a new interpreter for Lambda-Boolean reduction machine in the view of λ-calculus and introduce the role of Church–Rosser property in the point of symbolic and algebraic computation (SAC). Further information on λ-Boolean Theory is in [7], and references such as “[7.1]” will refer to paragraphs throughout the paper.
Section snippets
Basics
This section gives the basic definitions and notation for constructing the theoretical background. Definition 2.1 7.1 Assume that there is given an infinite sequence of symbols called Boolean variables (to denote arbitrary Boolean operators). The true value T and the false value F (T ≡ λxy · x, F ≡ λxy · y) are called truth values. The set of λ-Boolean terms (λB-terms) is defined inductively as follows: All variables and truth values are λB-terms. PMN is a λB-term if each of P, M and N is a λB-term already defined.
Definition 2.2 7.2
The λ
Construction the SAC-based lambda-boolean reduction machine by induction
The Lambda-Boolean reduction machine consists of three algorithms for applying of the rules of Lambda-Boolean and Lambda-Beta Boolean reductions for reducing the redexes in the Lambda-Boolean theory to the truth values in a particular order. Algorithm 3.1 Algorithm λB-R Input G: λB-term (in the form PMN) Output λB-term λB-R(P, P1) λB-R(M, M1) λB-R(N, N1) Apply-Boolean Reduction Axioms (P1N1M1, Reduced Term) – by Definition 2.5 Return (Reduced Term) End AlgorithmλB-R: Lambda-Boolean Reduction
Algorithm 3.2 λβB-R: Lambda-Beta Boolean Reduction
Algorithm λβB-R
Input
G: λB-term of one variable
z: Variable
H:
References (7)
An unsolvable problem of elementary number theory
American Journal of Mathematics
(1936)Computing with Logic: Logic Programming with Prolog
(1986)- et al.
Logic Grammars
(1989)
Cited by (1)
A functional computation model for the duality of two-variable Lambda-Boolean functions
2006, Applied Mathematics and Computation