3 research outputs found
Polymorphic Types in ACL2
This paper describes a tool suite for the ACL2 programming language which
incorporates certain ideas from the Hindley-Milner paradigm of functional
programming (as exemplified in popular languages like ML and Haskell),
including a "typed" style of programming with the ability to define polymorphic
types. These ideas are introduced via macros into the language of ACL2, taking
advantage of ACL2's guard-checking mechanism to perform type checking on both
function definitions and theorems. Finally, we discuss how these macros were
used to implement features of Specware, a software specification and
implementation system.Comment: In Proceedings ACL2 2014, arXiv:1406.123
Fix Your Types
When using existing ACL2 datatype frameworks, many theorems require type
hypotheses. These hypotheses slow down the theorem prover, are tedious to
write, and are easy to forget. We describe a principled approach to types that
provides strong type safety and execution efficiency while avoiding type
hypotheses, and we present a library that automates this approach. Using this
approach, types help you catch programming errors and then get out of the way
of theorem proving.Comment: In Proceedings ACL2 2015, arXiv:1509.0552