Team, Visitors, External Collaborators
Overall Objectives
Research Program
Application Domains
Highlights of the Year
New Software and Platforms
New Results
Partnerships and Cooperations
XML PDF e-pub
PDF e-Pub

Section: New Software and Platforms


Reduce Logic System

Keywords: Computer algebra system (CAS) - First-order logic - Constraint solving

Scientific Description: Redlog is an integral part of the interactive computer algebra system Reduce. It supplements Reduce's comprehensive collection of powerful methods from symbolic computation by supplying more than 100 functions on first-order formulas.

Redlog generally works with interpreted first-order logic in contrast to free first-order logic. Each first-order formula in Redlog must exclusively contain atoms from one particular Redlog-supported theory, which corresponds to a choice of admissible functions and relations with fixed semantics. Redlog-supported theories include Nonlinear Real Arithmetic (Real Closed Fields), Presburger Arithmetic, Parametric QSAT, and many more.

News Of The Year: Parts of the Redlog code are 25 years old now. Version 1 of the underlying computer algebra system Reduce has been published even 50 years ago. In 2018 we therefore decided to go for major revisions and improvements of Redlog's software architecture.

Redlog is, as well as the underlying Reduce, implemented in a language called RLISP, which technically parses an Algol-style procedural notation into a quite minimalistic Lisp 1 dialect called Standard Lisp. RLISP and Reduce and, subsequently, Redlog are bootstrapped on the basis of an existing Standard Lisp. Today, there are two independent implementations of Standard Lisp left, which are supported only on the basis of private commitment of essentially one individual per Lisp. With the large code base of Redlog plus the necessary algebraic algorithms from Reduce a migration to a different language or computer algebra system is not feasible. We are therefore experimenting with the realization of a Standard Lisp on the basis of ANSI Common Lisp, which could allow an RLISP-Reduce-Redlog bootstrap. Given that Common Lisp is a Lisp 2, this is feasible but not at all straightforward. Also, it naturally comes with a loss of efficiency, which requires careful programming. We are grateful that Inria supports this project with an engineer's position for limited time (ADT-135 Fast Track).

We are furthermore working on an improved design of Redlog's black-box and service schedulers [Dolzmann and Sturm, ACM SIGSAM Bull. 31, 1997] and a revision of global Boolean switches in favor of named optional arguments. In that course we store related information more explicitly, which will allow automatic consistency checks of the schedulers and automated interface generation with named arguments. In addition, this supports an interactive help system inside Reduce, which is also under construction.