First of all, let A be a proposition. Let me state the question from a philosophical point of view and then state it inside the theory. Given that Martin-Löf apparently considers (in "On the meaning of the logical constants and the justifications of the logical laws") ' (A true) provable' as a valid form of judgement, one would be tempted to say that '(A true) true' is indeed a valid form of judgement. Now, it only makes sense to say that one knows 'B true' whenever one already known 'B prop', that is B is a proposition. From this, one is inclined to believe that (A true) is indeed a proposition and, therefore, we know the conditions of verifiability of (A true).
1) Is there a type (A inhabited) inside the theory where a proof of it would be a proof that there's a proof of A?
2) If this is the case, is this type homotopy equivalent to A? In other words (A inhabited) \cong A is inhabited?
3) Motivated by the above question question, is there a type (A inhabited classically) where a proof of it would mean that A --> 0 is not inhabited or, a priori stronger, that A \cong 0 is not inhabited?
(By the way, additional question not related to this one, is it true that A ---> 0 \cong (A \cong 0) ?)
Perhaps you meant ∑(x:A) True instead of ∑(x:A) A ?
An equivalent formulation of the above is by Tarski undefinability of truth, which, in this case, implies that there are proofs (programs) that are not derivations in a formal system if type theory is consistent. But since type theory can talk about itself through universes, these derivations and proofs seems to coincide. Or maybe its just that these proofs are not really proofs that terminate in finite time, that is they are undecidable. I'm not sure.
Something that's potentially confusing about Martin-Löf's usage of terminology is precisely what he's saying in that quote. That by "provability", he does not mean provability in any formal system. As he says, you cannot consistently identify formal provability with truth. As you point out, that's precisely what Tarski's undefinability of truth tells us. So you have to watch out when followers of Matin-Löf talk about "proofs". A more modern term for this semantic notion of proof is "witness". Another is "evidence". A formal type system gives us a formal way to judge that some witness is indeed evidence for some proposition. But such judgments do not start out as pure formalism.
I'm not sure what you're getting at about universes, but I do know that it's not the same as working with formal derivations. There is no need for nontermination if you don't want it, since universes don't violate undefinability of truth. (Even if universes *were* about formally-definable stuff, it'd be definability in a strictly weaker system, so you'd still actually be OK.)
Thanks for your remarks, Matt.2017-04-13 22:34 GMT-03:00 Matt Oliveri <atm...@gmail.com>:Something that's potentially confusing about Martin-Löf's usage of terminology is precisely what he's saying in that quote. That by "provability", he does not mean provability in any formal system. As he says, you cannot consistently identify formal provability with truth. As you point out, that's precisely what Tarski's undefinability of truth tells us. So you have to watch out when followers of Matin-Löf talk about "proofs". A more modern term for this semantic notion of proof is "witness". Another is "evidence". A formal type system gives us a formal way to judge that some witness is indeed evidence for some proposition. But such judgments do not start out as pure formalism.Indeed I'm aware of this difference in terminology. First of all, "evidence" is what makes a judgement true, so its not something about propositions, so I believe this is not a good terminology according to ML tradition. Now, you mention that a proof is not a derivation but only a "witness". I'm not aware of rigorous definition of "witness" without an intended computational interpretation. In this case a witness is a program, which can for instance refer to itself and never halt in finite time. Maybe you have a more absolute definition of witness or maybe my intended interpretation of witness (in computation) is not correct?
If it matters, what I really want is to talk about derivability of judgements from inside the theory itself (as in Löb's theorem that you mentioned) and see how this relates to Gödel incompleteness theorem (given that truth equates to provability in constructive matematics). However, unfortunately, all the answers seems to be only trivial and unsatisfactory.
Is your question something along the lines of: for all judgments of the form ‘A is true’ in MLTT, is it the case that the types ∑ (n : ℕ) P(n,m) and A are equivalent (in the sense of the HoTT book)?
If this is the question you had in mind, then it is my understanding (and please correct me if I am wrong) that the answer is negative. For a counterexample, we just need to observe that A:=Unit is a mere proposition whereas ∑ (n : ℕ) P(n,m) does not have to be.
Hi Bruno,...
If this is the question you had in mind, then it is my understanding (and please correct me if I am wrong) that the answer is negative. For a counterexample, we just need to observe that A:=Unit is a mere proposition whereas ∑ (n : ℕ) P(n,m) does not have to be.Do you mean A is point? In this case, I'm not sure if ∑ (n : ℕ) P(n,m) wouldn't be a mere proposition again. Shouldn't it be the case that every derivation of 'A is true' is given by a term of A (of course, reciprocal assertion is not true)? In this case, ∑ (n : ℕ) P(n,m) would be a point, such that this point is located above the fiber over the Gödel code of the unique term of A.
A contractible A with more terms than derivations would do the trick since ∑ (n : ℕ) P(n,m) would be a bunch of points over a discrete space. However I don't know how to construct it nor if it exists.
In any case, this makes me think whether its the case that homotopy equivalence preserves truth since we can't identify which terms are derivations. Actually it's not clear even if an isomorphism preserves truth.
Do you mean A is point? In this case, I'm not sure if ∑ (n : ℕ) P(n,m) wouldn't be a mere proposition again. [...]
[...] Shouldn't it be the case that every derivation of 'A is true' is given by a term of A (of course, reciprocal assertion is not true)?
Essentially yes, in the case of intensional type theory. But these are terms up to syntactic equality, not definitional equality. So, for example, "()" and "(fun x=>x) ()" correspond to different formal proofs of Unit.
A contractible A with more terms than derivations would do the trick since ∑ (n : ℕ) P(n,m) would be a bunch of points over a discrete space. However I don't know how to construct it nor if it exists.
I guess you meant more derivations than elements? Anyway, we can see this already with Unit.
In any case, this makes me think whether its the case that homotopy equivalence preserves truth since we can't identify which terms are derivations. Actually it's not clear even if an isomorphism preserves truth.
But the sigma of formal derivations of a type is generally not homotopy equivalent to the actual type. In addition to the Unit example, where there are more derivations, we also have that the sigma of derivations is always an hSet, but not all types are hSets. Yet another example is "nat -> nat": the metalanguage will be able to witness more functions than the object language can derive, because it must be logically stronger. (If it isn't, you still don't get an equivalence, but this time because of undefinability of truth.)
It sure seems to me that equivalence preserves truth, pretty much by definition.
In any case, under this second view:1. We apparently get only one derivation of ‘a : A’ per term a of A in the intensional flavor of MLTT (although I would love to be proven wrong). If this is correct and, provided that P(n,m) is always a mere proposition for all n, m : ℕ, this means that indeed A ≅ ∑ (n : ℕ) P(n,m).2. In general, we may get more than one derivation of ‘a : A’ per term a of A in the extensional version of MLTT. One way to see why this is true is the following. Recall that the rule x : Empty ⊢ J is provable in the extensional theory for any judgment J. As a result, we may have at least two different derivations of (say) the judgment ‘λx.⋆ : Empty → Unit’, namely, one using UNIT-INTRO and →-INTRO and the other one using →-INTRO and the above-mentioned rule for J := '⋆ : Unit'.
Could you clarify why 2 is only true for the extensional case? Ex falso quodlibet holds for MLITT.
A contractible A with more terms than derivations would do the trick since ∑ (n : ℕ) P(n,m) would be a bunch of points over a discrete space. However I don't know how to construct it nor if it exists.
I guess you meant more derivations than elements? Anyway, we can see this already with Unit.Hmmm...It seems that we are interpreting the meaning of witness in a different way. Let me try to clarify this point. Please, take a look at this answer by Bob Harper . You're considering the syntactic proposition-as-types and not the semantic one right? (By the way, does the the semantic version fail to interpret MLITT? Why?)
Let me ask another question. By your interpretation it's not true thatA true----------------------- the rule holds, right?exists a: AIn other words, a witness is a program that fulfills a task (in finite time, of course) or a formal proof (derivation) of a proposition? Notice that the second option does not contradicts Tarski theorem if one doesn't assume that inhabited means true. That is we can choose the second option and approximate the notion of truth by provability.
In any case, this makes me think whether its the case that homotopy equivalence preserves truth since we can't identify which terms are derivations. Actually it's not clear even if an isomorphism preserves truth.
But the sigma of formal derivations of a type is generally not homotopy equivalent to the actual type. In addition to the Unit example, where there are more derivations, we also have that the sigma of derivations is always an hSet, but not all types are hSets. Yet another example is "nat -> nat": the metalanguage will be able to witness more functions than the object language can derive, because it must be logically stronger. (If it isn't, you still don't get an equivalence, but this time because of undefinability of truth.)
It sure seems to me that equivalence preserves truth, pretty much by definition.I can only make sense of your assertion that "it's clear by definition" if we agree about the definition of witness as I mentioned above.
(By the way, does the the semantic version fail to interpret MLITT? Why?)