Let's make set theory great again! John Harrison Amazon Web Services AITP 2018, Aussois 27th March 2018 (10:45{11:30) Contents I Why types? Why not? I Set theory as a foundation I Formalizing mathematics in set theory I Avoiding fake theorems I Numeric subtypes I Encoding undefinedness I Reflection principles I Relevance to AITP I Questions / discussions I Russell | introduced a system of types I Zermelo | developed axioms for set construction This divide is still with us today and pretty much all type theories are (distant) descendants of Russell's system. Type theory and set theory The divide between type theory and `untyped' axiomatic set theory goes back to different reactions to the paradoxes of naive set theory: This divide is still with us today and pretty much all type theories are (distant) descendants of Russell's system. Type theory and set theory The divide between type theory and `untyped' axiomatic set theory goes back to different reactions to the paradoxes of naive set theory: I Russell | introduced a system of types I Zermelo | developed axioms for set construction Type theory and set theory The divide between type theory and `untyped' axiomatic set theory goes back to different reactions to the paradoxes of naive set theory: I Russell | introduced a system of types I Zermelo | developed axioms for set construction This divide is still with us today and pretty much all type theories are (distant) descendants of Russell's system. Far fewer substantial systems are based on set theory: I Metamath I Isabelle/ZF (but much less popular than Isabelle/HOL) I Mizar (but that layers a type system on top) Foundations in theorem proving Many of the most popular interactive theorem provers are based on type theory I Simple type theory (HOL family, Isabelle/HOL) I Constructive type theory (Agda, Coq, Nuprl) I Other typed formalisms (IMPS, PVS) Foundations in theorem proving Many of the most popular interactive theorem provers are based on type theory I Simple type theory (HOL family, Isabelle/HOL) I Constructive type theory (Agda, Coq, Nuprl) I Other typed formalisms (IMPS, PVS) Far fewer substantial systems are based on set theory: I Metamath I Isabelle/ZF (but much less popular than Isabelle/HOL) I Mizar (but that layers a type system on top) I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are natural to computer scientists who develop many theorem proving programs. I Types are a rich topic of pure research and therefore more `interesting' But not all these are good reasons, and some are perverse incentives. Why types? The dominance of types has come about for a mix of technical and social reasons: I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are natural to computer scientists who develop many theorem proving programs. I Types are a rich topic of pure research and therefore more `interesting' But not all these are good reasons, and some are perverse incentives. Why types? The dominance of types has come about for a mix of technical and social reasons: I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are natural to computer scientists who develop many theorem proving programs. I Types are a rich topic of pure research and therefore more `interesting' But not all these are good reasons, and some are perverse incentives. Why types? The dominance of types has come about for a mix of technical and social reasons: I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are natural to computer scientists who develop many theorem proving programs. I Types are a rich topic of pure research and therefore more `interesting' But not all these are good reasons, and some are perverse incentives. Why types? The dominance of types has come about for a mix of technical and social reasons: I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are a rich topic of pure research and therefore more `interesting' But not all these are good reasons, and some are perverse incentives. Why types? The dominance of types has come about for a mix of technical and social reasons: I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are natural to computer scientists who develop many theorem proving programs. But not all these are good reasons, and some are perverse incentives. Why types? The dominance of types has come about for a mix of technical and social reasons: I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are natural to computer scientists who develop many theorem proving programs. I Types are a rich topic of pure research and therefore more `interesting' Why types? The dominance of types has come about for a mix of technical and social reasons: I Types make logical inference simpler (or even avoid it): x : R: P(x) instead of x: x R P(x) 8 8 2 ) I Types give a systematic way of assigning implicit properties: if f : G H is a homomorphism then you know what+ means ! where in f (x + y) = f (x) + f (y) I Types are part of an overall philosophical approach to foundations, e.g. from Martin-L¨of I Types are natural to computer scientists who develop many theorem proving programs. I Types are a rich topic of pure research and therefore more `interesting' But not all these are good reasons, and some are perverse incentives. I Types can create dilemmas or inflexibility I Types can clutter proofs I Subtypes may not work smoothly I Type systems are complicated There are simple type theories like HOL but they are the most inflexible. Why not types? My thesis is that types, despite their merits, have significant disadvantages: I Types can clutter proofs I Subtypes may not work smoothly I Type systems are complicated There are simple type theories like HOL but they are the most inflexible. Why not types? My thesis is that types, despite their merits, have significant disadvantages: I Types can create dilemmas or inflexibility I Subtypes may not work smoothly I Type systems are complicated There are simple type theories like HOL but they are the most inflexible. Why not types? My thesis is that types, despite their merits, have significant disadvantages: I Types can create dilemmas or inflexibility I Types can clutter proofs I Type systems are complicated There are simple type theories like HOL but they are the most inflexible. Why not types? My thesis is that types, despite their merits, have significant disadvantages: I Types can create dilemmas or inflexibility I Types can clutter proofs I Subtypes may not work smoothly Why not types? My thesis is that types, despite their merits, have significant disadvantages: I Types can create dilemmas or inflexibility I Types can clutter proofs I Subtypes may not work smoothly I Type systems are complicated There are simple type theories like HOL but they are the most inflexible. We have to make a choice, and depending on other features of the type system, that can greatly influence how easy or hard it is to prove something. For example, if you prove something generic about groups over a type, you may not be able to instantiate it later to a group over a subset of a type. Types can create dilemmas or inflexibility When formalizing anything intuivtively corresponding to a predicate/set, say over some domain D I We can formalize it as a predicate P : D B or subset S D ! ⊆ I We can introduce a new type corresponding to P Types can create dilemmas or inflexibility When formalizing anything intuivtively corresponding to a predicate/set, say over some domain D I We can formalize it as a predicate P : D B or subset S D ! ⊆ I We can introduce a new type corresponding to P We have to make a choice, and depending on other features of the type system, that can greatly influence how easy or hard it is to prove something.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages46 Page
-
File Size-