[ 3 / biz / cgl / ck / diy / fa / ic / jp / lit / sci / vr / vt ] [ index / top / reports ] [ become a patron ] [ status ]

/sci/ - Science & Math


View post   

File: 276 KB, 1280x720, caption_blank.jpg [View same] [iqdb] [saucenao] [google]
11270046 No.11270046 [Reply] [Original]

I usually post in /mg/ but I know this is a topic /sci/mg loves to fight about so there we go. One topic discussed:
https://en.wikipedia.org/wiki/Limited_principle_of_omniscience
https://ncatlab.org/nlab/show/principle+of+omniscience
Happy new year!


https://youtu.be/RusPpTVyNPw

>> No.11270432

bump

>> No.11270464

>>11270046
Do you have a question about these things, or are you just shitposting?

>> No.11271722
File: 100 KB, 394x329, 1577806739587.png [View same] [iqdb] [saucenao] [google]
11271722

>>11270464
Are type systems with subtyping a bad idea? If so, why?

I think (to have heard) it's convenient for programming but ruins much of the nice type theoretical properties.

I'm however also not sure how many variant of implementation there are of it (the idea that one term is inhabiting a type as well as a subtype of that type)

>> No.11271974

>>11271722
it's fine, two examples you see it in are
>polymorphism of classes in an OO language
>sets of numbers [math]\mathbb{N} \subseteq \mathbb{Q} \subseteq \mathbb{R} \subseteq \mathbb{C}[/math]
From the point of view of programming-language design it has obvious advantages, and obvious disadvantages (more work; introduces more undecidable problems w.r.t. extensional subtyping). But if you're asking from the point of view of a type theorist, beats me. Those fuckers are constantly tweaking their theories for publish-or-perish reasons, making it very hard to distinguish what, if any, rules are guiding their design decisions. But again the tradeoff is expressive power versus undecidability.

>> No.11272048
File: 38 KB, 568x322, 465186_1_En_1_Fig3_HTML.gif [View same] [iqdb] [saucenao] [google]
11272048

>>11271974
So you'd answer that it depend on what you want - simple to use object (subtyping) vs. decidability (e.g. of type checking).

In this case, though, it appears clear to me that one should gear things towards the latter and avoid the subtyping - simply because, after so many years, I can't see people actually opting for a functional language that has all the features (from a Javascript person's stand point exotic/magical features). Functional languages won't take over OO languages in their domain in my estimation. There's always gonna be more Kotlin guys than Scala guys. So it's futile to go on an try and get to an easy to learn system.

Okay all that said, I'll have to look into why exactly sub-typing fucks with the things you pointed out so much.
Maybe the secret is somewhere in Martin Odersky's papers, like

https://www.cs.purdue.edu/homes/rompf/papers/amin-wf16.pdf

>> No.11272058

>>11272048
>blaming the enviromental circumstances on lab experiences.