I'm currently trying to understand the concepts and theory behind some of the common proof verifiers out there, but am not quite sure on the exact nature and construction of the sort of systems/proof calculi they use. Are they essentially based on higher-order logics that use Henkin semantics, or is there something more to it? As I understand, extending Henkin semantics to higher-order logic does not render the formal system any less sound, though I am not too clear on that.


Though I'm mainly looking for a general answer with useful examples, here are a few specific questions:


* What exactly is the role of type theory in creating higher-order logics? Same goes with category theory/model theory, which I believe is an alternative.
* Is extending a) natural deduction, b) sequent calculus, or c) some other formal system the best way to go for creating higher order logics?
* Where does typed lambda calculus come into proof verification?
* Are there any other approaches than higher order logic to proof verification?
* What are the limitations/shortcomings of existing proof verification systems (see below)?


The Wikipedia pages on proof verification programs such as [HOL Light](http://en.wikipedia.org/wiki/HOL_Light) [Coq](http://en.wikipedia.org/wiki/Calculus_of_constructions), and [Metamath](http://us.metamath.org/) give some idea, but these pages contain limited/unclear information, and there are rather few specific high-level resources elsewhere. There are so many variations on formal logics/systems used in proof theory that I'm not sure quite what the base ideas of these systems are - what is required or optimal and what is open to experimentation.


Perhaps a good way of answering this, certainly one I would appreciate, would be a brief guide (albeit with some technical detail/specifics) on how one might go about generating a complete proof calculus (proof verification system) from scratch? Any other information in the form of explanations and examples would be great too, however.



How do proof verifiers work?

> 
> * What exactly is the role of type theory in creating higher-order logics? Same goes with category theory/model theory, which I believe is an alternative.
> 
> 
> 


Don't think of type theory, categorical logic, and model theory as *alternatives* to one another. Each step on the progression forgets progressively more structure, and whether that structure is essence or clutter depends on the problem you are trying to solve. Roughly speaking, the two poles are type theory and model theory, which focus on proofs and provability, respectively.


To a model theorist, two propositions are the same if they have the same provability/truth value. To a type theorist, equisatisfiability means that we have a proof of the biimplication, which is obviously not the same thing as the propositions being the same. (In fact, even the right notion of equivalence for proofs is still not settled to type theorists' satisfaction.) 


Categorical logicians tend to move between these two poles; on the one hand, gadgets like Lawvere doctrines and topoi are essentially model-theoretic, since they are provability models. On the other hand, gadgets like cartesian closed categories give models of proofs, up to $\beta\eta$-equivalence.



> 
> * Is extending a) natural deduction, b) sequent calculus, or c) some other formal system the best way to go for creating higher order logics?
> 
> 
> 


It depends on what you are doing. If you are building a computerized tool, then typically either natural deduction or sequent calculus is the way to go, because these calculi both line up with human practice and help constrain proof search in ways helpful to computers. It makes sense to cook up a sequent calculus or natural deduction system even if the theory you want to use (e.g., set theory) is not normally cast in these terms. 


On the other hand, model theory has been spectacularly successful in applications to mathematics, and this is in part *because* it does not have a built-in notion of proof system -- so there is simply less machinery you need to reinterpret before you can apply it to a mathematical problem. (The corresponding use of type theory is much less developed; homotopy theorists are in the very earliest stages of turning dependent type theory into ordinary mathematics.) 



> 
> * Where does typed lambda calculus come into proof verification?
> 
> 
> 


Every well-behaved intuitionistic logic has a corresponding typed lambda calculus. See Sorensen and Urcyczyn's [Lectures on the Curry-Howard Correspondence](http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.107.3462) for (many) more details.



> 
> * Are there any other approaches than higher order logic to proof verification?
> 
> 
> 


Yes and no. If you're interested in actual, serious mathematics, then there is no alternative to HOL or the moral equivalent (such as dependent type theory or set theory) because mathematics deals intrinsically with higher-order concepts. 


However, large portions of any development involve no logically or conceptually complex arguments: they are just symbol management, often involving decidable theories. This is often amenable to automation, if the problems in question are not stated in unnaturally higher-order language. (Sometimes, as in the case of the Kepler conjecture, there is an artificial way of stating the problem in a simple theory. This is essentially the reason why Hales' proof relies so heavily on computers: he very carefully reduced the Kepler conjecture to a collection of machine-checkable statements about real closed fields.) 



> 
> * What are the limitations/shortcomings of existing proof verification systems (see below)?
> 
> 
> 


The main difficulty with these tools is finding the right balance between automation and abstraction. Basically, the more expressive the logic, the harder automated proof search becomes, and the more easily and naturally you can define abstract theories that can be used in many different contexts. 


