checkedint call removal

Timon Gehr via Digitalmars-d digitalmars-d at puremagic.com
Sat Aug 2 00:23:06 PDT 2014


On 08/02/2014 09:00 AM, Chris Cain wrote:
> On Saturday, 2 August 2014 at 06:36:00 UTC, Timon Gehr wrote:
>>> http://en.wikipedia.org/wiki/Falsifiability
>>>
>>> ^^ See?
>>
>> "A statement is called falsifiable if it is possible to conceive an
>> observation or an argument which proves the statement in question to
>> be false."
>>
>> If we have proven the statement true, we won't readily deem it
>> possible to conceive an observation or argument which proves the
>> statement in question to be false.
>>
>>> It's an important part of science that there is the possibility
>>> of proving it false.
>>
>> Not exactly. The article is stating that it should be conceivable that
>> there might be an argument or an observation proving it false. But
>> that often holds simply because we cannot prove properties of reality
>> to hold. It is conceivable that gravity will not exist tomorrow and
>> this would falsify many theories of physics. I don't really believe
>> that this will happen, but it is conceivable.
>>
>>> That *doesn't* imply it *is* false, though.
>>> Likewise for verifiability (they're really just synonyms, which should
>>> really show you that there actually existing both a proof for truth and
>>> falseness doesn't make sense)
>>>
>>> http://www.synonym.com/synonyms/falsifiable/ -> verifiable is a synonym.
>>> ...
>>
>> Thanks! My hypothesis that verifiable/falsifiable are just idioms not
>> extending to verify/falsify is not shattered by this though.
>
> Perhaps I just don't understand what you're getting at. It seems
> throughout that you are thinking "statements of fact" has a meaning that
> it's inherently true and is proven or must be proven.
> ...

No, this you made clear already. (However, the post with the explosions 
was still warranted from my viewpoint, because the terminology was 
accidentally changed by you and I didn't notice and just implicitly 
assumed the two expressions were intended to be synonyms.)

> It seems to me that you've suggested:
>
> If falsifiable -> can be proven to be false -> must be proven false ->
> is false
> and
> If verifiable -> can be proven to be true -> must be proven true -> is true
>
> (falsifiable == verifiable)
> (can be proven to be false == can be proven to be true)
> (false == true) is trivially false.
> ...

No, I have suggested that _maybe_

verify != falsify

but that idiomatic usage of

verifiable == falsifiable.

> ...
> If you disagree with my conclusion, I don't
> think there's any more that we can communicate to each other about it. I
> totally understand why you think asserts meant that you wanted the
> compiler to check before (because that was my understanding originally),
> but this way makes much more sense and simplifies my mental model of the
> world. I no longer have to keep two (not-so) subtly different
> definitions in my head of what programming-assert means and
> English-assert means. Now they mean the same thing, which I'm pretty
> happy about overall.
> ...

Indeed, I still disagree with this conclusion, so let's put this aside 
for now, unless you see another point to discuss. Thanks for having been 
a reasonable discussion partner.

>> It is not so clear where to draw the boundaries. In some languages you
>> may need to prove the assertion true in order for it to pass the type
>> checker.
>
> That would be a cool construct as well, don't get me wrong. But
> considering the vast majority of programs could not reasonably have such
> proofs, I think the two concepts are orthogonal. I'd rename that to a
> "prove" statement and not an "assert" because assert has nothing to do
> with checking and conflating the two has caused confusion.

Well, this was just noting an existing reality that many people with a 
CS background might have been exposed to.


More information about the Digitalmars-d mailing list