Prospects of teaching/learning elementary math with computed-checked type theory












1














I've read as much as I can understand about type theory and homotopy type theory (HoTT) and it seems like these are very promising directions for re-foundationalizing mathematics in a way where complicated math proofs can be programmed and verified mechanistically. Unfortunately, but not surprisingly, all of this activity going on with type theory/HoTT is at a graduate-level and above.



Would it be useful as an exercise to try to formalize my understanding of relatively elementary subjects such as calculus, linear algebra, geometry, etc in a proof assistant such as Agda and just ignore the more advanced aspects of HoTT? Or is HoTT only useful for super advanced math










share|cite|improve this question


















  • 1




    It might be useful for you. I doubt that it would be useful for "teaching/learning elementary math".
    – Ethan Bolker
    Nov 25 at 19:48










  • In several ways, HoTT is more like normal math than Agda is (e.g. function extensionality holds). Developing any traditional math should only be easier in HoTT than in CIC, say.
    – Derek Elkins
    Nov 25 at 20:30






  • 1




    Incidentally, there's nothing particular about type theory that makes machine-checked proofs possible. There are set-theory-based proof assistants such as Mizar. Also ones that are type-theory-based, but on non-dependent type theories, such as Isabelle/HOL. That said, formalizing any non-trivial chunk of mathematics ("elementary" or otherwise) is a challenging task in any of these proof assistants. Formalizing calculus would not be the task of a weekend but of many months, and that's assuming you're already familiar with the system you are using.
    – Derek Elkins
    Nov 25 at 20:37












  • "teaching/learning elementary mathematics" has several centuries of success and resources behind it. Given that, though, you are welcome to try alternate approaches by yourself. Be prepared for a lot of extra very difficult work.
    – Somos
    Nov 25 at 20:41










  • @DerekElkins Surely formalizing all of calculus would be a massive undertaking, but one could formalize the basics in a synthetic way right? If I wanted to formalize an entire field of math from a few foundational axioms, that would of course take a large team of people working a long time. However, in a traditional programming language I can import and use a function that is a black box to me. Can I do the same with a proof assistant? Just add axioms and develop them as proved theorems later, drastically improving the rate of progress?
    – Brandon Brown
    Nov 25 at 20:58


















1














I've read as much as I can understand about type theory and homotopy type theory (HoTT) and it seems like these are very promising directions for re-foundationalizing mathematics in a way where complicated math proofs can be programmed and verified mechanistically. Unfortunately, but not surprisingly, all of this activity going on with type theory/HoTT is at a graduate-level and above.



Would it be useful as an exercise to try to formalize my understanding of relatively elementary subjects such as calculus, linear algebra, geometry, etc in a proof assistant such as Agda and just ignore the more advanced aspects of HoTT? Or is HoTT only useful for super advanced math










share|cite|improve this question


















  • 1




    It might be useful for you. I doubt that it would be useful for "teaching/learning elementary math".
    – Ethan Bolker
    Nov 25 at 19:48










  • In several ways, HoTT is more like normal math than Agda is (e.g. function extensionality holds). Developing any traditional math should only be easier in HoTT than in CIC, say.
    – Derek Elkins
    Nov 25 at 20:30






  • 1




    Incidentally, there's nothing particular about type theory that makes machine-checked proofs possible. There are set-theory-based proof assistants such as Mizar. Also ones that are type-theory-based, but on non-dependent type theories, such as Isabelle/HOL. That said, formalizing any non-trivial chunk of mathematics ("elementary" or otherwise) is a challenging task in any of these proof assistants. Formalizing calculus would not be the task of a weekend but of many months, and that's assuming you're already familiar with the system you are using.
    – Derek Elkins
    Nov 25 at 20:37












  • "teaching/learning elementary mathematics" has several centuries of success and resources behind it. Given that, though, you are welcome to try alternate approaches by yourself. Be prepared for a lot of extra very difficult work.
    – Somos
    Nov 25 at 20:41










  • @DerekElkins Surely formalizing all of calculus would be a massive undertaking, but one could formalize the basics in a synthetic way right? If I wanted to formalize an entire field of math from a few foundational axioms, that would of course take a large team of people working a long time. However, in a traditional programming language I can import and use a function that is a black box to me. Can I do the same with a proof assistant? Just add axioms and develop them as proved theorems later, drastically improving the rate of progress?
    – Brandon Brown
    Nov 25 at 20:58
















1












1








1







I've read as much as I can understand about type theory and homotopy type theory (HoTT) and it seems like these are very promising directions for re-foundationalizing mathematics in a way where complicated math proofs can be programmed and verified mechanistically. Unfortunately, but not surprisingly, all of this activity going on with type theory/HoTT is at a graduate-level and above.



Would it be useful as an exercise to try to formalize my understanding of relatively elementary subjects such as calculus, linear algebra, geometry, etc in a proof assistant such as Agda and just ignore the more advanced aspects of HoTT? Or is HoTT only useful for super advanced math










share|cite|improve this question













I've read as much as I can understand about type theory and homotopy type theory (HoTT) and it seems like these are very promising directions for re-foundationalizing mathematics in a way where complicated math proofs can be programmed and verified mechanistically. Unfortunately, but not surprisingly, all of this activity going on with type theory/HoTT is at a graduate-level and above.



Would it be useful as an exercise to try to formalize my understanding of relatively elementary subjects such as calculus, linear algebra, geometry, etc in a proof assistant such as Agda and just ignore the more advanced aspects of HoTT? Or is HoTT only useful for super advanced math







proof-verification foundations type-theory homotopy-type-theory univalent-foundations






share|cite|improve this question













share|cite|improve this question











share|cite|improve this question




share|cite|improve this question










asked Nov 25 at 19:46









Brandon Brown

1987




1987








  • 1




    It might be useful for you. I doubt that it would be useful for "teaching/learning elementary math".
    – Ethan Bolker
    Nov 25 at 19:48










  • In several ways, HoTT is more like normal math than Agda is (e.g. function extensionality holds). Developing any traditional math should only be easier in HoTT than in CIC, say.
    – Derek Elkins
    Nov 25 at 20:30






  • 1




    Incidentally, there's nothing particular about type theory that makes machine-checked proofs possible. There are set-theory-based proof assistants such as Mizar. Also ones that are type-theory-based, but on non-dependent type theories, such as Isabelle/HOL. That said, formalizing any non-trivial chunk of mathematics ("elementary" or otherwise) is a challenging task in any of these proof assistants. Formalizing calculus would not be the task of a weekend but of many months, and that's assuming you're already familiar with the system you are using.
    – Derek Elkins
    Nov 25 at 20:37












  • "teaching/learning elementary mathematics" has several centuries of success and resources behind it. Given that, though, you are welcome to try alternate approaches by yourself. Be prepared for a lot of extra very difficult work.
    – Somos
    Nov 25 at 20:41










  • @DerekElkins Surely formalizing all of calculus would be a massive undertaking, but one could formalize the basics in a synthetic way right? If I wanted to formalize an entire field of math from a few foundational axioms, that would of course take a large team of people working a long time. However, in a traditional programming language I can import and use a function that is a black box to me. Can I do the same with a proof assistant? Just add axioms and develop them as proved theorems later, drastically improving the rate of progress?
    – Brandon Brown
    Nov 25 at 20:58
















  • 1




    It might be useful for you. I doubt that it would be useful for "teaching/learning elementary math".
    – Ethan Bolker
    Nov 25 at 19:48










  • In several ways, HoTT is more like normal math than Agda is (e.g. function extensionality holds). Developing any traditional math should only be easier in HoTT than in CIC, say.
    – Derek Elkins
    Nov 25 at 20:30






  • 1




    Incidentally, there's nothing particular about type theory that makes machine-checked proofs possible. There are set-theory-based proof assistants such as Mizar. Also ones that are type-theory-based, but on non-dependent type theories, such as Isabelle/HOL. That said, formalizing any non-trivial chunk of mathematics ("elementary" or otherwise) is a challenging task in any of these proof assistants. Formalizing calculus would not be the task of a weekend but of many months, and that's assuming you're already familiar with the system you are using.
    – Derek Elkins
    Nov 25 at 20:37












  • "teaching/learning elementary mathematics" has several centuries of success and resources behind it. Given that, though, you are welcome to try alternate approaches by yourself. Be prepared for a lot of extra very difficult work.
    – Somos
    Nov 25 at 20:41










  • @DerekElkins Surely formalizing all of calculus would be a massive undertaking, but one could formalize the basics in a synthetic way right? If I wanted to formalize an entire field of math from a few foundational axioms, that would of course take a large team of people working a long time. However, in a traditional programming language I can import and use a function that is a black box to me. Can I do the same with a proof assistant? Just add axioms and develop them as proved theorems later, drastically improving the rate of progress?
    – Brandon Brown
    Nov 25 at 20:58










1




1




It might be useful for you. I doubt that it would be useful for "teaching/learning elementary math".
– Ethan Bolker
Nov 25 at 19:48




It might be useful for you. I doubt that it would be useful for "teaching/learning elementary math".
– Ethan Bolker
Nov 25 at 19:48












In several ways, HoTT is more like normal math than Agda is (e.g. function extensionality holds). Developing any traditional math should only be easier in HoTT than in CIC, say.
– Derek Elkins
Nov 25 at 20:30




In several ways, HoTT is more like normal math than Agda is (e.g. function extensionality holds). Developing any traditional math should only be easier in HoTT than in CIC, say.
– Derek Elkins
Nov 25 at 20:30




1




1




Incidentally, there's nothing particular about type theory that makes machine-checked proofs possible. There are set-theory-based proof assistants such as Mizar. Also ones that are type-theory-based, but on non-dependent type theories, such as Isabelle/HOL. That said, formalizing any non-trivial chunk of mathematics ("elementary" or otherwise) is a challenging task in any of these proof assistants. Formalizing calculus would not be the task of a weekend but of many months, and that's assuming you're already familiar with the system you are using.
– Derek Elkins
Nov 25 at 20:37






Incidentally, there's nothing particular about type theory that makes machine-checked proofs possible. There are set-theory-based proof assistants such as Mizar. Also ones that are type-theory-based, but on non-dependent type theories, such as Isabelle/HOL. That said, formalizing any non-trivial chunk of mathematics ("elementary" or otherwise) is a challenging task in any of these proof assistants. Formalizing calculus would not be the task of a weekend but of many months, and that's assuming you're already familiar with the system you are using.
– Derek Elkins
Nov 25 at 20:37














"teaching/learning elementary mathematics" has several centuries of success and resources behind it. Given that, though, you are welcome to try alternate approaches by yourself. Be prepared for a lot of extra very difficult work.
– Somos
Nov 25 at 20:41




"teaching/learning elementary mathematics" has several centuries of success and resources behind it. Given that, though, you are welcome to try alternate approaches by yourself. Be prepared for a lot of extra very difficult work.
– Somos
Nov 25 at 20:41












@DerekElkins Surely formalizing all of calculus would be a massive undertaking, but one could formalize the basics in a synthetic way right? If I wanted to formalize an entire field of math from a few foundational axioms, that would of course take a large team of people working a long time. However, in a traditional programming language I can import and use a function that is a black box to me. Can I do the same with a proof assistant? Just add axioms and develop them as proved theorems later, drastically improving the rate of progress?
– Brandon Brown
Nov 25 at 20:58






@DerekElkins Surely formalizing all of calculus would be a massive undertaking, but one could formalize the basics in a synthetic way right? If I wanted to formalize an entire field of math from a few foundational axioms, that would of course take a large team of people working a long time. However, in a traditional programming language I can import and use a function that is a black box to me. Can I do the same with a proof assistant? Just add axioms and develop them as proved theorems later, drastically improving the rate of progress?
– Brandon Brown
Nov 25 at 20:58

















active

oldest

votes











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
});
});
}, "mathjax-editing");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "69"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
noCode: true, onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3013299%2fprospects-of-teaching-learning-elementary-math-with-computed-checked-type-theory%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown






























active

oldest

votes













active

oldest

votes









active

oldest

votes






active

oldest

votes
















draft saved

draft discarded




















































Thanks for contributing an answer to Mathematics Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3013299%2fprospects-of-teaching-learning-elementary-math-with-computed-checked-type-theory%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Le Mesnil-Réaume

Ida-Boy-Ed-Garten

web3.py web3.isConnected() returns false always