Extensions of first order logic
Extensions of first order logic
An LCF-Style Interface between HOL and First-Order Logic
CADE-18 Proceedings of the 18th International Conference on Automated Deduction
Translating Higher-Order Clauses to First-Order Clauses
Journal of Automated Reasoning
Handling Polymorphism in Automated Deduction
CADE-21 Proceedings of the 21st international conference on Automated Deduction: Automated Deduction
Implementing polymorphism in SMT solvers
SMT '08/BPR '08 Proceedings of the Joint Workshops of the 6th International Workshop on Satisfiability Modulo Theories and 1st International Workshop on Bit-Precise Reasoning
CAV'07 Proceedings of the 19th international conference on Computer aided verification
Isabelle/HOL: a proof assistant for higher-order logic
Isabelle/HOL: a proof assistant for higher-order logic
TACAS'08/ETAPS'08 Proceedings of the Theory and practice of software, 14th international conference on Tools and algorithms for the construction and analysis of systems
A polymorphic intermediate verification language: design and logical encoding
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Discharging proof obligations from atelier b using multiple automated provers
ABZ'12 Proceedings of the Third international conference on Abstract State Machines, Alloy, B, VDM, and Z
Why3: where programs meet provers
ESOP'13 Proceedings of the 22nd European conference on Programming Languages and Systems
Encoding monomorphic and polymorphic types
TACAS'13 Proceedings of the 19th international conference on Tools and Algorithms for the Construction and Analysis of Systems
CADE'13 Proceedings of the 24th international conference on Automated Deduction
TFF1: the TPTP typed first-order form with rank-1 polymorphism
CADE'13 Proceedings of the 24th international conference on Automated Deduction
Hi-index | 0.00 |
In this paper, we study translation from a first-order logic with polymorphic types à la ML (of which we give a formal description) to a many-sorted or one-sorted logic as accepted by mainstream automated theorem provers. We consider a three-stage scheme where the last stage eliminates polymorphic types while adding the necessary "annotations" to preserve soundness, and the first two stages serve to protect certain terms so that they can keep their original unannotated form. This protection allows us to make use of provers' built-in theories and operations. We present two existing translation procedures as sound and complete instances of this generic scheme. Our formulation generalizes over the previous ones by allowing us to protect terms of arbitrary monomorphic types. In particular, we can benefit from the built-in theory of arrays in SMT solvers such as Z3, CVC3, and Yices. The proposed methods are implemented in the Why3 tool and we compare their performance in combination with several automated provers.