Galois A Language for Proofs Using Galois Connections and Fork Algebras Paulo F. Silva Joost Visser Jose´ N. Oliveira CCTC, University of Minho, Braga Software Improvement Group CCTC, University of Minho, Braga Portugal The Netherlands Portugal paufi
[email protected] [email protected] [email protected] Abstract DSLs in associated tool support for theorem proving and proof Galois is a domain specific language supported by the Galculator assistance. This tool, called Galculator (= Galois connection + interactive proof-assistant prototype. Galculator uses an equational calculator) [Silva and Oliveira 2008a], takes Galois connections approach based on Galois connections with indirect equality as as primitives and exploits their algebraic properties in proofs. Basi- an additional inference rule. Galois allows for the specification of cally, a Galois connection is a pair of functions with “good” preser- different theories in a point-free style by using fork algebras, an vation properties which connect two domains. Often, problems in extension of relation algebras with expressive power of first-order one of the domains are easier to solve than problems in the other logic. The language offers sub-languages to derive proof rules from domain. Using a Galois connection it is possible to map a “hard” Galois connections, to express proof tactics, and to organize axioms problem to an equivalent but easier one in the other domain, to and theorems into modular definitions. find its solution, and then map it back to the result in the origi- In this paper, we describe how the algebraic theory underlying nal domain (this is known as “shunting”). Galois connections are the proof-method drives the design of the Galois language.