Verifying the unification algorithm in LCF
Science of Computer Programming - Ellis Horwood series in artificial intelligence
Implementing mathematics with the Nuprl proof development system
Implementing mathematics with the Nuprl proof development system
A computational logic handbook
A computational logic handbook
Parallel program design: a foundation
Parallel program design: a foundation
An overview of LP, the larch power
RTA-89 Proceedings of the 3rd international conference on Rewriting Techniques and Applications
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Automating recursive type definitions in higher order logic
Current trends in hardware verification and automated theorem proving
Handbook of theoretical computer science (vol. B)
Systems programming with Modula-3
Systems programming with Modula-3
The temporal logic of reactive and concurrent systems
The temporal logic of reactive and concurrent systems
Type theory and functional programming
Type theory and functional programming
Report on the programming language Haskell: a non-strict, purely functional language version 1.2
ACM SIGPLAN Notices - Haskell special issue
Introduction to HOL: a theorem proving environment for higher order logic
Introduction to HOL: a theorem proving environment for higher order logic
A logical approach to discrete math
A logical approach to discrete math
Automated deduction in von Neumann-Bernays-Go¨del set theory
Journal of Automated Reasoning
Set theory for verification. I: from foundations to functions
Journal of Automated Reasoning
Formal Verification for Fault-Tolerant Architectures: Prolegomena to the Design of PVS
IEEE Transactions on Software Engineering
The development of type systems for object-oriented languages
Theory and Practice of Object Systems - Special issue: type systems
ML for the working programmer (2nd ed.)
ML for the working programmer (2nd ed.)
A practical soft type system for scheme
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verification of sequential and concurrent programs (2nd ed.)
Verification of sequential and concurrent programs (2nd ed.)
Predicative programming Part II
Communications of the ACM
The Science of Programming
Mechanical Verification of Concurrent Systems with TLA
CAV '92 Proceedings of the Fourth International Workshop on Computer Aided Verification
A Fixedpoint Approach to Implementing (Co)Inductive Definitions
CADE-12 Proceedings of the 12th International Conference on Automated Deduction
STMM: A Set Theory for Mechanized Mathematics
Journal of Automated Reasoning
ZB '00 Proceedings of the First International Conference of B and Z Users on Formal Specification and Development in Z and B
Predicate Subtyping with Predicate Sets
TPHOLs '01 Proceedings of the 14th International Conference on Theorem Proving in Higher Order Logics
Action systems in incremental and aspect-oriented modeling
Distributed Computing - Papers in celebration of the 20th anniversary of PODC
Faster constraint solving with subtypes
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
A type system for object models
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Distributed Computing - Special issue: Verification of lazy caching
State Spaces --- The Locale Way
Electronic Notes in Theoretical Computer Science (ENTCS)
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Proceedings of the 7th symposium on Dynamic languages
Normalization of IZF with replacement
CSL'06 Proceedings of the 20th international conference on Computer Science Logic
An overview of ciao and its design philosophy
Theory and Practice of Logic Programming - Prolog Systems
Automatic detection of attacks on cryptographic protocols: a case study
DIMVA'05 Proceedings of the Second international conference on Detection of Intrusions and Malware, and Vulnerability Assessment
A mechanized translation from higher-order logic to set theory
ITP'10 Proceedings of the First international conference on Interactive Theorem Proving
Automatic verification of TLA+ proof obligations with SMT solvers
LPAR'12 Proceedings of the 18th international conference on Logic for Programming, Artificial Intelligence, and Reasoning
A qualitative comparison of the suitability of four theorem provers for basic auction theory
CICM'13 Proceedings of the 2013 international conference on Intelligent Computer Mathematics
Hi-index | 0.00 |
Most specification languages have a type system. Type systems are hard to get right, and getting them wrong can lead to inconsistencies. Set theory can serve as the basis for a specification language without types. This possibility, which has been widely overlooked, offers many advantages. Untyped set theory is simple and is more flexible than any simple typed formalism. Polymorphism, overloading, and subtyping can make a type system more powerful, but at the cost of increased somplexity, and such refinements can never attain the flexibility of having no types at all. Typed formalisms have advantages, too, stemming from the power of mechanical type checking. While types serve little purpose in hand proofs, they do help with mechanized proofs. In the absence of verificaiton, type checking can catch errors in specifications. It may be possible to have the best of both worlds by adding typing annotations to an untyped specification language. We consider only specification languages, not programming languages.