<div dir="ltr"><div>Hi Sergei,</div><div><br></div><div>I think the confusion comes from people misinterpreting "Agda doesn't have the excluded middle": it means that *in general* we don't have "A or not A" for an arbitrary type/proposition A, but there are still many specific A's for which we can prove this fact (i.e. the *decidable* types/propositions). So in some sense you are relying on the excluded middle for <=, but not really since excluded middle for <= is provable (so it doesn't require any axioms). I think it is common in intuitionistic mathematics to only talk about the 'excluded middle' when it is used for types for which it is not provable, for example equality of two types.</div><div><br></div><div>-- Jesper<br></div></div><br><div class="gmail_quote"><div dir="ltr">On Sat, Oct 6, 2018 at 1:18 PM Sergei Meshveliani <<a href="mailto:mechvel@botik.ru">mechvel@botik.ru</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Sat, 2018-10-06 at 11:14 +0200, Jesper Cockx wrote:<br>
> Hi Silvio,<br>
> [..]<br>
> <br>
> Agda is based on Martin-Löf type theory, <br>
> [..]<br>
> Of course, Agda is an intuitionistic logic so you do not have the law<br>
> of the excluded (not the included btw) middle or the axiom of choice,<br>
> so you may want to postulate these. However, if you haven't done any<br>
> intuitionistic logic before you may be surprised how far you can get<br>
> without them :)<br>
> [..]<br>
<br>
<br>
I am not a specialist in logic, but I apply Agda to programming algebra.<br>
<br>
Let specialists correct me if I write wrong things below.<br>
<br>
First I was surprised of how much is possible to compute and prove by<br>
using an intuitionistic logic of Agda. Then I looked into my programs by<br>
new and discovered that they often rely on the law of excluded middle!<br>
But not for the general case, only for the case when a relation P is<br>
decidable<br>
(this is like to discover that one is writing prose).<br>
<br>
For example, sorting algorithm for  List A  relies on a decidable<br>
comparison _<=?_ on A, and has a branch<br>
<br>
  case x <=? y of \ { (yes _) -> ...<br>
                    ; (no _)  -> ... }<br>
<br>
I think this relies on excluded middle for _<=_.<br>
Right?<br>
<br>
And a great part of computer algebra is done by applying excluding<br>
middle to decidable relations.<br>
<br>
I guess most mathematicians would think that almost nothing can be<br>
computed or proved in languages like Agda -- because ``excluded middle<br>
is forbidden''.<br>
And in practice, almost all can be computed/proved there, because<br>
excluded middle is valid for decidable relations<br>
Do I mistake about this validity of excluded middle?<br>
<br>
Regards,<br>
<br>
------<br>
Sergei<br>
<br>
> <br>
> On Sat, Oct 6, 2018 at 8:25 AM Silvio Frischknecht<br>
> <<a href="mailto:silvio.frischi@gmail.com" target="_blank">silvio.frischi@gmail.com</a>> wrote:<br>
> <br>
>         Hello,<br>
>         <br>
>         I am trying to learn some logic. Currently reading "A<br>
>         Mathematical Introduction to Logic" by Enderton. I find it<br>
>         hard to keep track of what can be done/assumed to be true in<br>
>         the metamathematic. I also find it hard to keep track of all<br>
>         the implicit things like models. I was wondering if it's<br>
>         possible to reproduce these results with Agda as<br>
>         metamathematical system.<br>
>         <br>
>         I found a paper that proved the completeness theorem for<br>
>         propositional logic. <a href="https://akaposi.github.io/proplogic.pdf" rel="noreferrer" target="_blank">https://akaposi.github.io/proplogic.pdf</a><br>
>         <br>
>         Correct me if I'm wrong, but it seems like this might be<br>
>         easier than the completness theorem for first-order logic<br>
>         because it deals with finite things.<br>
>         <br>
>         My questions are these.<br>
>         <br>
>         <br>
>         1) Can Agda prove the completeness theorem of first order<br>
>         logic?<br>
>         <br>
>         <br>
>         2) Can Agda prove the two incompleteness theorems?<br>
>         <br>
>         3) Do I need some additional tools/axioms that I can postulate<br>
>         in Agda to do this? Like set theory axioms?<br>
>         <br>
>         4) Is set theory replaced by Agda or is it to be<br>
>         defined/implemented in Agda?<br>
>         <br>
>         <br>
>         5) What exactly are the limits of what can be proved? I assume<br>
>         at some point the incompleteness theorem will kick in. Also<br>
>         popular opinion seems to suggest that the constructivist view<br>
>         can not deal with the law of included middle or the axiom of<br>
>         choice.<br>
>         <br>
>         <br>
>         6) Could I theoretically rebuild the Agda syntax and proof<br>
>         that Agda always terminates?<br>
>         <br>
>         <br>
>         Cheers<br>
>         <br>
>         <br>
>         Silvio<br>
>         <br>
>         <br>
>         <br>
>         _______________________________________________<br>
>         Agda mailing list<br>
>         <a href="mailto:Agda@lists.chalmers.se" target="_blank">Agda@lists.chalmers.se</a><br>
>         <a href="https://lists.chalmers.se/mailman/listinfo/agda" rel="noreferrer" target="_blank">https://lists.chalmers.se/mailman/listinfo/agda</a><br>
> _______________________________________________<br>
> Agda mailing list<br>
> <a href="mailto:Agda@lists.chalmers.se" target="_blank">Agda@lists.chalmers.se</a><br>
> <a href="https://lists.chalmers.se/mailman/listinfo/agda" rel="noreferrer" target="_blank">https://lists.chalmers.se/mailman/listinfo/agda</a><br>
<br>
<br>
</blockquote></div>