< 1266624063 0 :FireFly!unknown@unknown.invalid QUIT :Quit: Leaving < 1266624143 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :would be nice if functions were invertable < 1266624149 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*invertible < 1266624199 0 :kilimanjaro!~kilimanja@unaffiliated/kilimanjaro JOIN :#esoteric < 1266624237 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hi kilimanjaro < 1266624240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :haven't seen you before < 1266624264 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :it's because I never leave my mother's basement < 1266624270 0 :Libster!~Libster@pool-173-73-27-43.washdc.fios.verizon.net JOIN :#esoteric < 1266624271 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro pm < 1266624271 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :most people haven't seen me for that reason < 1266624276 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, that's a good entrance < 1266624282 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :hey is my -q off yet < 1266624282 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: what are you pming someone entirely new for < 1266624284 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :sweet < 1266624286 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hm wait Libster joining shortly after- oh dear < 1266624289 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fizzie: ping. < 1266624290 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :hello alise < 1266624300 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I don't see the other guys because I have them on ignore < 1266624314 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :alise, we probably share similar feelings towards Libster < 1266624315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :libster just joined and is off +q so uh yeah < 1266624316 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I want him to unban me from #math < 1266624319 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :where did we leave off < 1266624330 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: you might want to leave until he stops the trollaxing :P < 1266624331 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :who likes Erlang < 1266624339 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Erlang is... alright < 1266624342 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :who likes design patterns? < 1266624352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean it's not /bad/ or anything, competent functional language < 1266624357 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :there was a project by a guy to implement something like it in gambit scheme < 1266624362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah i know of that < 1266624366 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :through chris double < 1266624366 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Libster: What, you mean lambda? < 1266624370 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :because erlang is a wonderful idea bolted onto a crappy sequential language < 1266624373 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lambda's pretty nice. < 1266624384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: don't encourage him < 1266624386 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :alise, the guy who did it used to hang out pretty regularly in #scheme < 1266624387 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :yome < 1266624394 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Heh. < 1266624397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm not such a fan of erlang's concurrency mechanism but eh < 1266624401 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm a purely functional kind of weenie < 1266624406 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if it doesn't have beautiful denotational semantics it sucks < 1266624407 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :do you like CML? < 1266624409 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :isn't that the only reason people use erlang < 1266624413 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :for its concurrency mechanism < 1266624430 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :i thought CML was really neat but I never actually wanted to program in SML < 1266624435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cml is, sure i guess < 1266624437 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but still a bit meh < 1266624439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :IMPURE! < 1266624444 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :pl what do you have in mind < 1266624453 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :ok* < 1266624467 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait I have to have a coherent idea? < 1266624472 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :well I dunno < 1266624474 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :uh, fortress has implicit concurrency and that actually seems to work, that's cool < 1266624475 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :i'm just curious < 1266624482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :haskell's `par` stuff is nice < 1266624489 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :i'm not talking about concurrency at that level < 1266624495 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as opposed to < 1266624508 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :I mean at the design level, where the concurrency is actually part of the way you structure the program < 1266624514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :par involves that < 1266624521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and fortress does too to an extent < 1266624522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but mostly par < 1266624523 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :like erlang forces you to look at things in terms of processes & messages < 1266624525 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :par is definitely part of the structure < 1266624538 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: but you don't need to structure things specially if you have pure functions < 1266624542 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there are no side effects to handle the ordering of < 1266624553 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :parallelism becomes purely a computational detail < 1266624605 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :in the year 2000 maybe < 1266624608 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :when we are living on the moon < 1266624620 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :lol! < 1266624621 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :but for now real systems with real concurrency & distribution involve people being explicit about that < 1266624625 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro hello? < 1266624632 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :can someone get him to talk to me at least < 1266624658 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy is clamoring for you to cyber with her < 1266624672 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :wait is she talking? < 1266624680 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266624691 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric : kilimanjaro hello? < 1266624691 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric : can someone get him to talk to me at least < 1266624728 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :hi MissPiggy < 1266624742 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hi kilimanjaro :) < 1266624744 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lets PM? < 1266624753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is not sure what MissPiggy is attempting to achieve < 1266624757 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :go for it < 1266624764 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: you should look at fortress < 1266624769 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it does handle quite a bit of parallelism implicitly < 1266624774 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm not denying that we need to specify it < 1266624782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but we don't need to structure every single module around it in a functional paradigm < 1266624796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also if you're interested in here-and-now practical solutions what are you doing in this channel? < 1266624815 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :he is trolling you < 1266624820 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :but he's so good at it you can't even tell < 1266624822 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :says the troll < 1266624995 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :alise, well esoteric doesn't have to mean impractical < 1266625003 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sure but still. < 1266625007 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :it does to these people < 1266625039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I honestly do wonder if Libster doesn't have anything more intellectually satisfying to do. < 1266625069 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :nope this is pretty much as satisfying as anything to me < 1266625114 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :alise, you could ignore him < 1266625116 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Libster: you're just not very good at trolling < 1266625123 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :yeah i know < 1266625126 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :that's why i'm practicing < 1266625132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: doesn't stop him talking < 1266625133 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :nobody is born a good troll, it takes hard work < 1266625152 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :point < 1266625155 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'd ask lament to ban him but if there ever was a fruitless cause of action more likely to result in your own banning that is it < 1266625174 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :what < 1266625183 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266625183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sorry, I used big words. < 1266625191 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266625202 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :noen of your words exceeded two syllables < 1266625205 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :very impressive < 1266625220 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :Libsterification < 1266625235 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He's... not even annoying. < 1266625241 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Just boring. < 1266625242 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i disagree < 1266625246 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1266625250 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i think he's pretty annoying < 1266625258 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :me too < 1266625260 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :anyways I was hoping to talk about esoteric languages < 1266625265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean in the way of a really irritating troll < 1266625272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he's just like a flea occasionally flying in your vision < 1266625275 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :does prolog count as esoteric < 1266625280 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1266625282 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :these days maybe it should < 1266625314 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro prolog hardly counts as esoteric :/ < 1266625349 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :do you know how to program in prolog < 1266625350 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ignore MissPiggy she's wrong :) < 1266625361 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :i was going to implement a unification algorithm once < 1266625380 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :to be honest i was no really trolling < 1266625381 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :in fact there's a really good paper on how to implement prolog efficiently < 1266625386 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, have you even written a prolog compiler in prolog? < 1266625392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, no. < 1266625397 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so shut up :P < 1266625397 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :you see by typing stupid shit in this channel i am actually coding in my own esoteric language < 1266625403 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why? < 1266625415 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :because shut up? < 1266625418 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :poo < 1266625430 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :haha MissPiggy is better at trolling than i am I should leave this to her < 1266625450 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :prolog's not esoteric, you can implement an ALGOL like in 10 lines and to imperative programming in that < 1266625467 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or you could implement some basic functional programming and do that.. < 1266625481 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(or you could just do actual programming in prolog, which is a lot less silly) < 1266625502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :irrelevant < 1266625507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :esolangs can be easy to turn into non-esolangs < 1266625508 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :was any actual program ever written in prolog? < 1266625515 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :prolog is sufficiently weird. < 1266625516 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :here's the paper http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.106.6051&rep=rep1&type=pdf < 1266625516 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :sup < 1266625518 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :pretty cool < 1266625522 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't understand how prolog gets this impression < 1266625528 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :lament, actually imo the #1 application of prolog < 1266625539 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's WORSE than people going "lol brackets)))))" about lisp < 1266625543 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :was tricking the japanese into investing millions of dollars in their "fifth generation computing" project < 1266625546 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: help I've been having dirty thoughts. I want to introduce some sort of impurity in my language for a reason < 1266625550 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: oh right < 1266625558 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i remember reading about that, pretty impressive < 1266625563 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :another example of the white man keeping the yellow man down < 1266625569 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro -- yeah that's a really nice paper, the next step is PVRs Aquarius thesis < 1266625598 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise; that will be 10 strokes of the cane! < 1266625617 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Prolog on Prozac < 1266625631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: but it's for a reason! < 1266625634 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: and it's very restricted! < 1266625647 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Prolog on Perambulators < 1266625649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: basically it's to allow you to write memoise: (a->b) -> (a->b) < 1266625662 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, bleh! < 1266625672 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: the idea is basically that you can use impurity, *so long as it cannot escape the function* < 1266625677 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I always disliked that but I know pragmatically useful etc etc < 1266625689 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, I know; I'm just trying to think of a way to make it theoretically sound < 1266625707 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: So, the function itself is pure, but can be stateful internally? < 1266625727 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :That is... Actually rather Haskell-like. < 1266625737 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise what about something like ST? You could have an axiom for it < 1266625764 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ST doesn't let you return a pure function that accesses the impure state < 1266625808 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise but the axiom could let you ? maybe < 1266625823 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Actually, I think you can. Just have the state within that function's closure... < 1266625824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Then that would be side-effects without escaping, which is exactly my idea. < 1266625828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: Write it, then. < 1266625894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/zorysb/memoise.pdf < 1266625910 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :note: new isn't OOP there, I just was playing with the idea of an operator < 1266625916 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that took a type and returned some appropriate "empty" value < 1266625925 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically mempty. :P < 1266625989 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Nope. I'm completely and utterly wrong. < 1266625998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ascii version of that, btw < 1266625999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :memoise(f: a -> b) -> (a -> b) := < 1266625999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : let memory := new Map(a, b) < 1266625999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : \x. < 1266625999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : x in memory => memory[x] < 1266625999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : otherwise => memory[x] := f(x) < 1266626002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: yep < 1266626003 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266626010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the problem is defining what escaping the function is < 1266626017 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :here, the memory[x] lookup is always identical to the first call < 1266626023 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so if the input function is pure (which it must be) the output is < 1266626028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that's kinda hard to prove... < 1266626048 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Well. Actually, not quite. You could use unsafePerformIO and close over an mvar. :P < 1266626062 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise you could just prove it's observationally equivalent to a pure function < 1266626081 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :unsafePerformIO gives you unsafeCoerce :: a -> _|_ < 1266626083 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise since it always gives the same values, as the identity function -- that should work out I think < 1266626083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_|_ -> a < 1266626093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ergo unsafePerformIO => _|_ < 1266626103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore unsafePerformIO cannot have a value < 1266626111 0 :CESSQUILINEAR!~CESSMASTE@unaffiliated/joelywoely JOIN :#esoteric < 1266626111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: right < 1266626123 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: also, gawp at my amazingly beautiful syntax. :| < 1266626128 0 :CESSQUILINEAR!unknown@unknown.invalid PRIVMSG #esoteric : ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ ☃ < 1266626133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yo < 1266626143 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :what is this, troll #esoteric day < 1266626143 0 :CESSQUILINEAR!unknown@unknown.invalid PRIVMSG #esoteric :snow mans < 1266626161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey cessmaster is our friend man. < 1266626168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :our /friend/ < 1266626170 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :cess is our friend < 1266626171 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1266626180 0 :CESSQUILINEAR!unknown@unknown.invalid PRIVMSG #esoteric :i am < 1266626188 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :someone should make a ☃ language < 1266626206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the one fatal flaw of TeX is the lack of \snowman < 1266626210 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :sorry Libster you cannot apply ☃ in the current evaluation context < 1266626215 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :IF UR FRENDS WITH CESS ☃☃☃☃☃ POST THIS SNOWMAN 10 TIMES ☃☃☃☃☃☃ < 1266626232 0 :CESSQUILINEAR!unknown@unknown.invalid PRIVMSG #esoteric :alise: xetex < 1266626260 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: memoise f = (\mvar x -> unsafePerformIO $ do if isInMemory mvar x then getMemory mvar x else setMemory mvar x (f x)) $ unsafePerformIO newMVar emptyMemory < 1266626264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :signal/noise = 0 < 1266626269 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oops, pikhq just talked < 1266626293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :signal/noise = ω < 1266626308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: would you rather write that or http://filebin.ca/zorysb/memoise.pdf < 1266626316 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Yours. < 1266626335 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :What I wrote is probably the scariest Haskell line I've written. < 1266626351 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :if you stare at it hard enough < 1266626355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :couldn't you just use an ioref < 1266626356 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the two unsafePerformIOs merge together < 1266626390 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :have any of you gone outside in the past couple of days < 1266626398 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean < 1266626402 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :outside of what < 1266626403 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :anyway it reeks < 1266626407 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :of the basement < 1266626409 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :don't program with unsafe functions < 1266626412 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :just use ocaml < 1266626414 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :uhh duhh < 1266626421 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Then everything is unsafe! < 1266626424 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :i keep all the sodas in the refridgerator < 1266626425 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :in the kitchen < 1266626429 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266626432 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well it's actually not unsafe that's the thing :P < 1266626437 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :you should just move your fridge to the basement < 1266626439 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Yes it is. < 1266626440 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :or get a minifridge < 1266626444 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gawd < 1266626445 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :groan < 1266626453 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :the basement has a freezer where I keep pizza bagels < 1266626455 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :You modify state. That is horribly unsafe. < 1266626455 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lament: if i ask you to increase signal/noise, you'll just kick me, won't you < 1266626458 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :I don't have room for sodas < 1266626461 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :alise: yes. < 1266626461 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what are you seriously saying that mutable reference break type safety < 1266626464 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :I'd have to get rid of some of the pizza bagels < 1266626476 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :wait is this lament's channel? < 1266626477 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lament: how do I phrase a query so that you reading it will cause you to ban Libster? < 1266626479 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: No, they break semantic safety. < 1266626481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(this is metaenquiry, this) < 1266626483 0 :CESSQUILINEAR!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: put away 40 of em < 1266626485 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :Libster, lament is an op < 1266626486 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Libster: lament/fizzie's. < 1266626490 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or are you giving the standard "buuut daaad it's hard to program with mutation!!" argument < 1266626491 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lament is founder now iirc < 1266626491 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266626505 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :well lament isn't gonna ban me unless he doesn't it right now just to spite the fact i just said this < 1266626507 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :is semantic safety something with a formal definition? < 1266626517 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or is it something you just made up to claim that mutation is BAD < 1266626518 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :Libster: *head explodes* < 1266626531 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :alise, no < 1266626535 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :andreou is founder < 1266626537 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i sure am glad fizzie is our main op - also, you didn't hear me say this < 1266626540 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Hey, how often do your bugs come from state being modified? < 1266626545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: what status does aardappel have again? < 1266626554 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :less than lament < 1266626555 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to guess "all the ones that compile". < 1266626557 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, I almost never program anything let alone things with mutable state < 1266626562 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: not in the past tho < 1266626567 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :you can just /msg chanserv access list #esoteric < 1266626570 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, but I guess that you are giving the "buuut daaad.." argument now < 1266626571 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you almost never program anything? < 1266626572 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :kilimanjaro: i used to be cofounder but then freenode introduced the #/## distinction and changed the cofounder on all # channels to be freenode-staff :( < 1266626585 0 :kilimanjaro!unknown@unknown.invalid PRIVMSG #esoteric :lament, ahh lame < 1266626590 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Then why the hell do you even care? < 1266626591 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266626599 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i complained to the staff and they're like, well, file a form < 1266626604 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(also, WTF? A non-coder in here?) < 1266626605 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :fuck freenode < 1266626616 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :free fucknode < 1266626620 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, what should I be programming though? < 1266626622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy is a computer scientist, not a programmer :P < 1266626626 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :that's a good idea < 1266626630 0 :Libster!unknown@unknown.invalid PRIVMSG #esoteric :i'm gonna start fucknode < 1266626631 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :computING scientist *ahem* < 1266626639 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :CSer < 1266626667 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: A computing science guy that doesn't cream his pants over purely functional languages? < 1266626671 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :programming is mostly fucking around with GUI libraries < 1266626672 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Now that's amazing. < 1266626673 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266626681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :been there done that < 1266626690 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Also... < 1266626690 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you seem to think MissPiggy is advocating imperative langs < 1266626706 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pikhq oh I dig (pure) fp -- but I don't think it's the whole story < 1266626727 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I don't think I've ever futzed with a GUI library more than "bashing out a quick Tk interface". < 1266626738 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well you are a more skilled programmer than me :) < 1266626742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: opinion time: using things like actual images, or actual tables, as literals: cool thing, or /coolest/ thing? < 1266626747 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Which is only technically programming, really. < 1266626749 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :all I do is fuck around with broken software and give up < 1266626765 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise: coolest thing :D < 1266626776 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Definitely coolest thing. < 1266626782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: In my OS, of course, the literals are, well, /literally objects/. < 1266626785 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise: I think you need a good editor though....... < 1266626789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The table is a literal table embedded in the AST. < 1266626796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The image is a literal image embedded in the AST. < 1266626801 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :like a wooden table with legs? < 1266626811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can bring up information about them, inquire about them, perform functions on them, etc. < 1266626820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Edit them with whatever facility exists to edit them. < 1266626844 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: And I presume this goes even further. < 1266626850 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :ACTION imagines an editor literal in a program < 1266626860 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I suppose you could technically do that, but that would be ridiculous. < 1266626878 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Especially as you could just edit the program directly and save yourself a layer of indirection. < 1266626883 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it would be useful for more than, say, automating an editor. But still. < 1266626894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You'd probably create that programmatically :P < 1266626903 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You could include example Fugue programs as literal sounds < 1266626912 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Play them inline < 1266627032 0 :cal153!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266627103 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lisp programs as actual lists. < 1266627104 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266627216 0 :cal153!~cal@c-69-181-46-213.hsd1.ca.comcast.net JOIN :#esoteric < 1266627327 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://www.nasa.gov/multimedia/nasatv/index.html < 1266627528 0 :augur!~augur@c-68-54-80-152.hsd1.md.comcast.net JOIN :#esoteric < 1266627767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i ought to make my os like, now < 1266627833 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1266627915 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what abou plan9 < 1266627931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :meh < 1266627936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just a big heap of char *s < 1266627994 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wchar_T * :P < 1266627998 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oops < 1266628001 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no it treats files as bytes < 1266628002 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266628003 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: Not a heap. < 1266628006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also you mean Rune * < 1266628007 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :A *tree* of char *s. < 1266628009 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266628011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lawl. < 1266628022 0 :oklogon!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266628026 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whoa < 1266628072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i just realised that OSs with changing mutable state are like... continuatiosn. < 1266628075 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*continuations < 1266628229 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I'm watching them fly the shuttle away from the satillite < 1266628240 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :they're still in 0-g < 1266628253 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :indeed < 1266628312 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1266628326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what :( < 1266628359 0 :oklogon!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1266628362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is Z32 for Z_{2^32} accepted mathematical notation? i would guess not, fortress peeps prolly invented it < 1266628364 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bad fortress peeps < 1266628367 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bad! < 1266628402 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :eh it seems fine < 1266628415 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you have to know fortress anyway < 1266628424 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so it should not be very confusind? < 1266628426 0 :Libster`!~Libster@pool-173-73-27-43.washdc.fios.verizon.net JOIN :#esoteric < 1266628440 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :type Z(n:Z) := Z_(2^n) < 1266628445 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :problem solved < 1266628461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a neat thing is that you can define functions on Z_n < 1266628462 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :polymorphism! < 1266628612 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, the (a=>b;c=>d;otherwise=>e) conditional syntax is very elegant < 1266628625 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah that's from lisp < 1266628641 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I like it too < 1266628648 0 :Libster!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266628659 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Lisp? Syntax? What sort of craziness is this? < 1266628664 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :m-expressions < 1266628668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, not quite < 1266628669 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://projectfortress.sun.com/Projects/Community/blog/ConditionalExpressions < 1266628679 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lisp was [p=>a; q=>b; elseclause] < 1266628685 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266628687 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :s/=>/->/ < 1266628698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :mccarthy used (p -> a, q -> b, elseclause) < 1266628704 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I prefer (p => a; q => b; otherwise => elseclause) < 1266628781 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Darned M-expressions. Being Lisp syntax. < 1266628783 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :although with omitted ;s on newlines < 1266628933 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pikhq: LLVM isn't replacing -fvia-c. < 1266628938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's replacing /everything/. < 1266628951 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Specifically, NCG -> LLVM. < 1266628957 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's a replacement arrow. < 1266628983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"The headline is accurate: GHC is dropping the GCC backend (except for bootstrapping) in favor of David's new LLVM backend, as the performance potential is much better." < 1266628985 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, I stand corrected < 1266629032 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266629240 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: They may in the future replace the NCG. < 1266629247 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :*Currently*, it just replaces -fvia-c. < 1266629255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Will, rather. < 1266629275 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :(IIRC, they will do so if it's ready in time for .16.) < 1266629428 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: does your CAS have some sort of code dump I can load into my system < 1266629487 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise well it um doesn't realy exist yet < 1266629490 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :finger `ls /home` < 1266629492 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I have to sort out the GUI < 1266629497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm fine with text output < 1266629498 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well the REPL < 1266629509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm fine with command line invocation < 1266629512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what language is it in? < 1266629560 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I haven't written it! < 1266629571 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I can't decide to use haskell or coq < 1266629582 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(or both) < 1266629597 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well coq is already all that stuff in a way < 1266629606 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i suggest writing it in my lang :P < 1266629735 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What is it? < 1266629778 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a lang < 1266629862 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's MissPiggy's thing? < 1266629870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a computer algebra system < 1266629873 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ah < 1266629888 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What's your language? < 1266629923 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, going to play some RoboZZle while I wait for a meeting for a project that I'm supposed to deny the existence of. < 1266629930 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :win 19 < 1266629933 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :fffw < 1266629963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1266629972 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: what project < 1266629986 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :let me guess it's some virtual reality shit that you feel some sort of twisted obligation to < 1266629996 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The project that I've mentioned countless times before.. and yes, that's right < 1266630006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how about just freeing yourself < 1266630015 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How about, I really really want this game to exist < 1266630028 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :whih game? < 1266630029 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :from what i've seen its incompetence is so great that there is very little hope of that < 1266630031 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so give up and move on < 1266630038 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: some remake of some shitty old virtual reality "game" he likes < 1266630047 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :virtual reality! :O < 1266630054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: think second life but worse < 1266630062 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :is it an MMO? < 1266630071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :something like that. except without the fighting, or stats < 1266630086 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I think that people who want to make an MMO are not going to succeed < 1266630159 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :We already have an MMO platform of sorts < 1266630177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.neuroproductions.be/logic-lab/LogicLab2.swf is fun < 1266630182 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And resources such as the server is all paid for already < 1266630190 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um, by AWI < 1266630190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(p xnor q) xor (r nand s) = FUN TIMES < 1266630255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wish i had a mic to play with it < 1266630292 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I have an RL friend who wants to make an MMO with me though < 1266630299 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And honestly, I'm not too interested in that < 1266630548 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266630565 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :With the logic lab, I can only use one of each piece? < 1266630571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er no < 1266630574 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :n/m < 1266630606 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :xnor? nxor or is it something else? < 1266630641 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It should be possible to make a flip-flop with logic gates, right? < 1266630674 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it has flip flops < 1266630683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ilari: presumably it's exclusive nor < 1266630687 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Yes, but those are technically redundant? < 1266630724 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Flip flop is just some logic around SR latch, and SR latch is two NANDs or NORs (depending on polarity of signals). < 1266630767 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What does the spinny output thing actually do? I mean, besides spin? < 1266630801 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Or maybe it needed two SR latches... I don't remember anymore. < 1266630910 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How does the NOT gate make signal out of thin air? < 1266630941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :magic < 1266630954 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1266630958 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :silly program < 1266630961 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :5min before the meeting and no one's here < 1266630963 0 :Ilari!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: At least CMOS NOT gate connects output to positive voltage if input is at ground. < 1266630972 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo you are good at pretending it doesnt exist! < 1266630987 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, I care very little about the confidentiality junk < 1266631009 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :If they really cared, they'd have told us before I started telling everyone I knew < 1266631061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If they even /care/ about confidentiality in a hobby project, they are abject fools, no more intelligent than children, with a complete misunderstanding of how groups self-organise. < 1266631071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Their use of C# only bolsters this suspicion. < 1266631118 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They're far more likely to waste arbitrary amounts of your time than to produce anything meaningful. Making a 3D game is /hard/, especially a networked 3D game, and these people appear to be too idiotic to do it. < 1266631136 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Ask yourself if this game being made really has infinite utility, and if there isn't a better way to achieve it than with this hopeless rubbish. < 1266631147 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The "networked 3d" part is already taken care of by the platform, ActiveWorlds < 1266631156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :They still need to write the networking code. < 1266631161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And don't think that invalidates the rest of what I said. < 1266631184 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um, no < 1266631197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, so it magically connects to a socket for them? < 1266631202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think not. It's still C# code. < 1266631211 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :All of that code is part of Active Worlds < 1266631240 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The actual logic of the game is in a program that does connect to the world, and connecting is simple < 1266631267 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You know, I think there may be real issues underlying your seemingly life-controlling nostalgia... < 1266631354 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what's the original < 1266631357 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I want to see the original < 1266631373 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266631421 0 :lament!~lament@S0106001b63f462cc.vc.shawcable.net JOIN :#esoteric < 1266631440 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/results?search_query=Mutation+activeworlds&search_type=&aq=f [the first video there is not that great [it's mine], and Mutation - Mafia has nothing to do with anything] < 1266631442 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :active worlds < 1266631571 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that is so cool < 1266631578 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's like 3D IRC < 1266631584 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh don't /encourage/ him < 1266631591 0 :jcp!~jw@bzflag/contributor/javawizard2539 JOIN :#esoteric < 1266631887 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Whee, no one's there < 1266631933 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :sorry Sgeo < 1266631947 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :He means at the "meeting". < 1266632009 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :What did MissPiggy think I meant? < 1266632074 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It might be possible that I'm 12 hours late. The guy in charge mixed up AM and PM once before. < 1266632100 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Although I think that's why it's at "11:59" and not "12:00" < 1266632164 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :SG-1 now < 1266632215 0 :jcp!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266632674 0 :kilimanjaro!unknown@unknown.invalid PART #esoteric :? < 1266632839 0 :MissPiggy!unknown@unknown.invalid QUIT :Quit: Lost terminal < 1266632859 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :wasn't an AM/PM issue this time < 1266633329 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/djzwuz/on-syntax.pdf < 1266633334 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A little ditty about syntax. Comments welcome. < 1266633394 0 :gm|lap!~gm@unaffiliated/greasemonkey JOIN :#esoteric < 1266633455 0 :Asztal!~asztal@host86-169-6-64.range86-169.btcentralplus.com JOIN :#esoteric < 1266633568 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's a PDF < 1266633582 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes, it is. < 1266633591 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Here's zero nickels; go buy a better PDF reader and/or operating system. < 1266633617 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Let me know when you're ready to join every single person in academia, plus some people not. (Okay, so academia loves .ps too, but still.) < 1266634141 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :NOBODY LOVSE ME < 1266634160 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1266634164 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :lovse < 1266634167 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :.cx < 1266634170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yeah, I like that spelling of that word now. < 1266634177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Oh, shit, didn't even notice that < 1266634177 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :alise < 1266634180 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :.cx < 1266634193 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Loves sex and alise sex? < 1266634196 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You've got cx on the brain. < 1266634245 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://images.google.com/hosted/life/l?q=theodore+roosevelt+source:life&prev=/images%3Fq%3Dtheodore%2Broosevelt%2Bsource:life%26ndsp%3D20%26hl%3Den%26sa%3DN%26start%3D80&imgurl=2934f1cc36185de2 < 1266634250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Theodore Roosevelt riding a moose. < 1266634442 0 :gm|lap!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266634505 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1266635004 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266635400 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bye < 1266635403 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :see you tomorrow < 1266635445 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Bye < 1266635676 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :alise: We should write in the pure, untyped lambda calculus. < 1266635713 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION just offered to give the project head some money because his AW citizenship is going to expire soonish. No cit, no project < 1266635717 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :He turned it down < 1266636455 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1266638511 0 :CESSQUILINEAR!unknown@unknown.invalid QUIT :Ping timeout: 256 seconds < 1266638908 0 :Libster`!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266640403 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266641713 0 :CESSQUILINEAR!~CESSMASTE@unaffiliated/joelywoely JOIN :#esoteric < 1266641927 0 :bsmntbombdood_!~gavin@97-118-180-186.hlrn.qwest.net JOIN :#esoteric < 1266642083 0 :bsmntbombdood!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266642681 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266642729 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266644687 0 :bsmntbombdood__!~gavin@97-118-212-59.hlrn.qwest.net JOIN :#esoteric < 1266644723 0 :bsmntbombdood__!unknown@unknown.invalid NICK :bsmntbombdood < 1266644874 0 :bsmntbombdood_!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266645722 0 :CESSQUILINEAR!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1266645901 0 :Libster`!~Libster@pool-173-73-27-43.washdc.fios.verizon.net JOIN :#esoteric < 1266646752 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1266646946 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266647686 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266648909 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266649057 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1266649344 0 :pikhq!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266649433 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1266649486 0 :lament!~lament@S0106001b63f462cc.vc.shawcable.net JOIN :#esoteric < 1266650014 0 :addicted!~addicted@217.219.111.150 JOIN :#esoteric < 1266650246 0 :deschutron!~alex@115-166-55-84.ip.adam.com.au JOIN :#esoteric < 1266650289 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :hey guys, is anyone here a fan of SNUSP? < 1266650705 0 :Pthing!~pthing@cpc11-pres4-0-0-cust168.pres.cable.virginmedia.com JOIN :#esoteric < 1266650761 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1266650897 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266651027 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :deschutron, apparently you've written quite a bit of extension stuff for it < 1266651037 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266651117 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION bibbles a bit at EPARM < 1266651136 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :i've also written an interpreter for it, including some of the extensions i described on the wiki < 1266651158 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :and i've written a command shell in an extended form of SNUSP < 1266651238 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :this week, they got uploaded to the Esoteric Files Archive < 1266651247 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :EPARM seems a bit like PSOX [my project which I abandoned, but is mostly done], except designed better possibly < 1266651261 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :oh really? < 1266651279 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :what does PSOX do? < 1266651292 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://esolangs.org/wiki/PSOX < 1266651316 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :That PSOX 1.0a1 thing is a bit old < 1266651361 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh wait, EPARM is _only_ for command-line arguments? < 1266651394 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :pretty much < 1266651411 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :the snusp-start command framework can be used to define other special functions < 1266651424 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :but EPARM only specifies argument-passing funcionality < 1266651485 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Ah. PSOX has some functionality defined in the spec [Network/HTTP access in particular] < 1266651499 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And was supposed to have File I/O defined, but it was abandoned before then < 1266651559 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :so PSOX is designed to allow more advanced functionality than reading and writing to a program that only uses stdin and stdout? < 1266651583 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um, it still reads and writes to a program that only uses stdin and stdout < 1266651612 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Question: Did you manage to make EPARM work on Windows? < 1266651633 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I had trouble figuring out how to do that, that resulted in requiring the program to output the fact that it wants to receive input < 1266651650 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :no, i didn't try < 1266651710 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :are you talking about making it so that if you run the program with args on the windows command prompt, it will receive the arguments? < 1266651755 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :in that case, the windows arguments don't make it to the esoteric program < 1266651778 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :however, an interpreter could be made that will convert the args < 1266651834 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :In my snusp command shell, it sends EPARM arguments to a program iff the user tries to run it with arguments. Otherwise it doesn't use EPARM. < 1266651847 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :given the design of EPARM, that worked pretty well < 1266651873 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :the programs never have to output the fact that they want to receive EPARM input < 1266652300 0 :pikhq!~pikhq@75-106-100-139.cust.wildblue.net JOIN :#esoteric < 1266652587 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Sorry, was IAW < 1266652633 0 :augur_!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266652642 0 :augur!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266652647 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :i've also come up with something to give advanced functionality to stdin/stdout programs: i've started writing a kernel wrapper for Linux. < 1266652671 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :how does the snusp-start command framework deal with the possibility of a program wanting to do stuff, get input related to that stuff, do more stuff, do regular output, etc. etc. etc.? < 1266652700 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I need to go to sleep now. Good night < 1266652707 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266652712 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :good night < 1266652799 0 :clog!unknown@unknown.invalid QUIT :ended < 1266652800 0 :clog!unknown@unknown.invalid JOIN :#esoteric < 1266652852 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :anyway, i mainly came here to plug my newly uploaded programs: Snuspi the SNUSP interpreter, and Snuspatron the extended-SNUSP command shell < 1266652867 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :They are available in the impl/ and src/ subfolders of http://esolangs.org/files/snusp/ , on the Esoteric Files Archive. < 1266653022 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :the snusp-start command framework allows a program to be fed meta-data relating to how it is being executed < 1266653081 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :it can inform the program that a certain protocol is available for it to use, for example < 1266653171 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://trac2.assembla.com/psox/browser/trunk < 1266653220 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :thanks. i have already downloaded it via svn < 1266653238 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :AH < 1266653240 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*Ah < 1266653258 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :if a feature can't make use of sending metadata to a program when it is started, then i'm afraid snusp-start commands won't help it < 1266653293 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um, there might be a bit of a bug in db_utils.py on line 18 < 1266653298 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :concerning a missing " < 1266653461 0 :augur_!unknown@unknown.invalid NICK :augur < 1266653485 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1266653604 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :oh, and trunk/ex has a lot of obsolete stuff < 1266653613 0 :Libster`!unknown@unknown.invalid QUIT :Ping timeout: 272 seconds < 1266653626 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :i just got psoxsimplecat.b to work using your psox program < 1266653648 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1266653650 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Try online.b < 1266653668 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :pikhq made a wget.b, but it's not included in there < 1266653676 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And I should be going to sleep 3 hours ago < 1266653693 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :what should online.b do < 1266653695 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :jsut quickly < 1266653698 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :then i'll let you go < 1266653752 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :When it runs, type in a URL (including the http://) and press enter < 1266653757 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It should display the contents < 1266653774 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :hot dog it did < 1266653805 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1266654140 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :this post contains info about my kernel wrapper. Ctrl+F "an arch" to see the basic usage architecture: http://esolangs.org/forum/kareha.pl/1266506523/1 < 1266654230 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :my wrapper uses a basic protocol that has the client program basically setting the sycall arguments and calling linux syscalls by number < 1266654248 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :conceiveably, a wrapper can be written that uses PSOX. < 1266654577 0 :oerjan!unknown@unknown.invalid QUIT :Quit: leaving < 1266654761 0 :oklopol!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266654836 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266655075 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :what's .b ? < 1266655192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater4, file extension? < 1266655195 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brainfuck < 1266655201 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266655203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :.bf is befunge < 1266655209 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so don't mix them up < 1266655236 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(befunge 98 uses .b98 though) < 1266655258 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :you guys should reimplement XanaduSpace in brainfuck < 1266655272 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no clue what that is < 1266655306 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :it's the better alternative to hypertext < 1266655509 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :vaporware iirc? < 1266655541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I think I have read about it somewhere < 1266655552 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :cheater4, but go reimplement it yourself < 1266655604 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :nah, there's a demo out < 1266655613 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric :but it only opens the single demo document < 1266655615 0 :cheater4!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266655641 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :see, vapourware < 1266656786 0 :MigoMipo!kvirc@79.138.178.211.bredband.tre.se JOIN :#esoteric < 1266657005 0 :Asztal!~asztal@host86-169-6-64.range86-169.btcentralplus.com JOIN :#esoteric < 1266657509 0 :oklopol!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266657660 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266658515 0 :kwertii!unknown@unknown.invalid QUIT :Quit: bye < 1266659541 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"pikhq: (also, WTF? A non-coder in here?)" <<< i'm a non-coder! < 1266659798 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :i only code if i absolutely have to, and i never program anything. < 1266660159 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266660485 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1266660693 0 :FireyFly!~firefly@unaffiliated/firefly JOIN :#esoteric < 1266660776 0 :tombom!~tombom@wikipedia/Tombomp JOIN :#esoteric < 1266661619 0 :FireyFly!unknown@unknown.invalid NICK :FireFly < 1266661937 0 :Azstal!~asztal@host86-166-170-102.range86-166.btcentralplus.com JOIN :#esoteric < 1266661977 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 248 seconds < 1266663484 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1266665682 0 :sebbu2!unknown@unknown.invalid NICK :sebbu < 1266665766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :* Sgeo just offered to give the project head some money because his AW citizenship is going to expire soonish. No cit, no project < 1266665767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : He turned it down < 1266665788 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a fool, unless he believes that your supply of money is limited enough that that would cause you disutility greater than the project not existing < 1266665798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or unless he has money with which he is going to renew it anyway < 1266666106 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266666554 0 :oklopol!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266667120 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266667185 0 :oklopol!unknown@unknown.invalid NICK :oklofok < 1266667501 0 :oklofok!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1266667534 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266667556 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1266667896 0 :Asztal!~asztal@host86-166-170-102.range86-166.btcentralplus.com JOIN :#esoteric < 1266667938 0 :Aszstal!~asztal@host86-166-170-102.range86-166.btcentralplus.com JOIN :#esoteric < 1266668123 0 :Azstal!unknown@unknown.invalid QUIT :Ping timeout: 276 seconds < 1266668153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"The obvious answer is that you took a computational specification of a human brain, and used that to precompute the Giant Lookup Table. (Thereby creating uncounted googols of human beings, some of them in extreme pain, the supermajority gone quite mad in a universe of chaos where inputs bear no relation to outputs. But damn the ethics, this is for philosophy.)" < 1266668177 0 :Asztal!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1266668415 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :where is that quote from? < 1266668624 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :http://lesswrong.com/lw/pa/gazp_vs_glut/ < 1266668962 0 :oklopol!~oklopol@dsl-tkubrasgw1-fe1cfa00-120.dhcp.inet.fi JOIN :#esoteric < 1266669088 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: why thank you < 1266669091 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :mr googler :P < 1266669099 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266669143 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :Can someone who doesn't suck at C tell me how to load oa text file into a square array of characters that matches what I'd see in a text editor? < 1266669150 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :load a* < 1266669159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You know how to open a file, yes? < 1266669163 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266669177 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Use getc() to read the file character-by-character; keep counters i and j, initially 0. < 1266669183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if the char is \n, j++ < 1266669186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and i=0 < 1266669190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise < 1266669197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :chars[i][j] = char; < 1266669197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i++; < 1266669199 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :what do I do with the characters I dno't overwrite? < 1266669207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Don't overwrite"? < 1266669218 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :the ones that I don't set in the array < 1266669231 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and how would I know what size to have the array be? < 1266669247 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :What characters would you not set into the array? < 1266669249 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You mean newlines? < 1266669260 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :As I said, increase j++ and reset i to 0 on a newline, then continue to the next character. < 1266669281 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, you don't. Either pick a "big enough" value, or use malloc and realloc to adjust the array size as you run out of it. < 1266669292 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :no, like line 6 being five characters long, what would I do with chars[7][6] < 1266669298 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: Oh. < 1266669303 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Initialise the array to \0s < 1266669308 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :? < 1266669311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\0 is end-of-string in C < 1266669315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"\0" < 1266669316 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I'm a terrible programmer < 1266669321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So you could use a line as a string < 1266669333 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :re: malloc and realloc "But isn't that hellishly boring and easy to fuck up?" Yes, it is, so don't use C. < 1266669356 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :actually, I love playing with pointers < 1266669394 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[list(x) for x in open('filename', 'r').read().split('\n')] < 1266669396 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That's it in Python < 1266669398 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I'm going to go get soda so that I feel less shitty. Later. < 1266669407 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Doesn't pad out the lines to all be the same length, but there you go.) < 1266669431 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :Python is amazing, but I don't feel like learning it because of the syntax constraints/restraints/whatever. < 1266669452 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So learn some other language. < 1266669454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Like Haskell. < 1266669459 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric ::d < 1266669461 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266669475 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1266669481 0 :oklopol!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1266669504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :deschutron: thanks what? :P < 1266669574 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Here's a complete implementation < 1266669575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lines = open('/dev/stdin', 'r').read().strip().split('\n') < 1266669575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :width = max(len(x) for x in lines) < 1266669575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :table = [list(x.ljust(width)) for x in lines] < 1266669591 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :the googling :P < 1266669605 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :i should have googled it myself... < 1266669631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266669693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266669693 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lines = open('/dev/stdin', 'r').read().strip().split('\n') < 1266669694 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :width = max(len(x) for x in lines) < 1266669694 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :table = [list(x.ljust(width)) for x in lines] < 1266669698 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :substitute /dev/stdin for a filename and that works < 1266669701 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :blank places considered spaces < 1266669900 0 :MigoMipo!unknown@unknown.invalid QUIT :Quit: co'o rodo < 1266670170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wish uorygl was here, so that I could share with him an awful pun. < 1266670557 0 :tombom!unknown@unknown.invalid QUIT :Quit: Leaving < 1266671238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://filebin.ca/uekfh/gcd.pdf < 1266671239 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Pretty. < 1266671724 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :back < 1266671785 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :don't you think an image would have sufficed? :P < 1266671830 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I typeset it in TeXmacs; producing an image would have been a lot harder than hitting export. < 1266671840 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :k < 1266671842 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, no; this one scales to any size. < 1266671859 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :svg? :D < 1266671862 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I'm kidding. < 1266671865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Besides, it's how you program in my language. Better get used to it :) < 1266671925 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :Your language interprets PDF files? :D < 1266671948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, no, it compiles abstract syntax trees. But ASCII source code isn't the done thing, really. < 1266671960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You'd type that form directly into an editor with keypresses something like: < 1266671972 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gcd(m:ZZ,n:ZZ)->Z:= < 1266671975 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(n=0=>m < 1266671982 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise=>gcd(n,m-n*floor(m/n))) < 1266671987 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And it'd show as that. < 1266671993 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*->ZZ < 1266672005 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :that works, I suppose < 1266672025 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :That form wouldn't be stored, though; just interpreted as editor commands to create an AST. < 1266672063 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :quick question: Should I use the form of Boat on the wiki page or a minimized version? < 1266672106 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :When in doubt, simplify, especially for an esolang. Anything not directly related to the central idea must go; that way, you have to utilise the central idea at all times to create programs, heightening the esotericism. Also, it makes it easier to implement, and cleaner. < 1266672108 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :said minimized version: http://64.vg/src/48029a6eda8165c6d5a5b6f71a785f1e/raw < 1266672118 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1266672594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266672599 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there should really be some notat- anyway < 1266672614 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: I'd drop !=; it's !(e==e) < 1266672620 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd drop nand, too, it's !(e&e) < 1266672630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd also drop division; you don't have addition or anything, so why? < 1266672677 0 :CESSQUILINEAR!~CESSMASTE@unaffiliated/joelywoely JOIN :#esoteric < 1266672721 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :because multiplicatin is really hard to to IM < 1266672737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1266672740 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and I culd see me dropping !=, but it's a real operator < 1266672749 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :sorry, my o key is being stupid < 1266672752 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to IM? < 1266672753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1266672756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you have no mult < 1266672759 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :IMO < 1266672764 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :do* < 1266672767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1266672772 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :to do, in my opinion < 1266672773 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, just drop != and !& they don't save any chars < 1266672776 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :!(e&e) < 1266672777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(e!&e) < 1266672780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: howso < 1266672781 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :nand? < 1266672810 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :multiplication is hard to do in an excessive way like brainfuck does, and that's not my goal < 1266672957 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I do suppose I shld re-add subratsin and get rid of binary not though. < 1266672961 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :should* < 1266673028 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :subtration* < 1266673093 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*gasp*! The comment form on this scam page does nothing! What a surprise! < 1266673139 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :It's supposedly moderated, but a quick glance at the source reveals no contact with the server < 1266673163 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: you have no mult though < 1266673164 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just division < 1266673169 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Also, some of the text makes a reference to what websites seem to think is my hometown. < 1266673171 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :e/(1/e) < 1266673177 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :that's e*e < 1266673186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, yes < 1266673190 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but division is "complicated" < 1266673193 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :brings in reals etc < 1266673194 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just have mult < 1266673207 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :everything is an integer < 1266673208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: yeah common scam thingy < 1266673211 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*gasp* < 1266673211 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :ah scam pages... < 1266673214 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: then what you have is not division < 1266673217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, you have no "e" < 1266673225 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266673226 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I used HideMyAss.com, and now Marie is from Woodstock! < 1266673228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, 1/x = 0 if you only have ints < 1266673236 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :She's the magical ordinary mom! < 1266673240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so x/(1/y) cannot be x*y < 1266673242 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I said e/(1/e) in the scope of mathematics < 1266673244 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :not Boat < 1266673245 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's x/0 < 1266673249 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore, / is not sufficient to give * < 1266673256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore you cannot justify keeping / because of multiplication < 1266673262 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1266673271 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I forgot to implement shifting < 1266673286 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :(I'm kidding, there's no reason to have it) < 1266673322 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :the way that memory is addressed, and the fact that I have division, allows for multiplicatino < 1266673326 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :on* < 1266673337 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and I'm saying that because I can't find a way to prove myself wrong, so have at it! < 1266673352 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :it actually reminds me of when i visited some Yahoo chat rooms yesterday. There seemed to be a lot of bots there < 1266673356 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :if you find a serious flaw I agree with then I'll remove division or add multiplication < 1266673436 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Wareya: well x/y in your lang is integer division right? < 1266673447 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. floor(x:RR/y:RR) < 1266673455 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is the fine print genuine? If it wasn't, would they be shut down by .. some governmental thingy? < 1266673468 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :I believe so < 1266673478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-1 < 1/x < 1 < 1266673493 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :<= < 1266673497 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm, yes. < 1266673502 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :and yes < 1266673506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore, floor(1/x) = 1 if x = 1; 0 otherwise < 1266673522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with reals, x/(1/y) = x*y < 1266673526 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"Please also recognize that the story and comments depicted on this site and the person depicted in the story are not real." < 1266673528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for integers: < 1266673542 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x/(1/y) -> x/(if y = 1 then 1 else 0) < 1266673544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-> < 1266673550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if y = 1 then x else (undefined) < 1266673560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore, you cannot use integer division to perform integer multiplication. < 1266673561 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Q.E.D. < 1266673575 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :not even with binary shifting? < 1266673584 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :even if it's innacurate? < 1266673619 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :binary shifting is, itself, multiplication and division of powers of 2. < 1266673636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :x<>y = x/(2^y) < 1266673663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we already have /, so x>>y only adds one useful operation < 1266673675 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :1>>y = 1/(2^y) < 1266673688 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the problem with this is that 1>>y always = 0. < 1266673697 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so, anyway < 1266673702 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how can we do 3*3, let's say < 1266673708 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, we can't do 3/(1/3) < 1266673711 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :hang on < 1266673718 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and 3 isn't a power of 2, so we can't use << < 1266673722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we can however < 1266673725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :express it as 6/2 < 1266673733 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric := 6/(2^1) < 1266673742 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :you can use << to reduce the innacuraccies of integer divisin, can't you? < 1266673750 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :ion* < 1266673752 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so, that gets us three < 1266673760 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but not in an operation < 1266673766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we still need a general multiplication < 1266673769 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean? < 1266673771 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but since 3 isn't a power of two < 1266673773 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we can't use << < 1266673781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore, you cannot multiply in your language without using addition and a loop. < 1266673782 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1266673789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore the division is useless for that purpose < 1266673803 0 :MissPiggy!~none@unaffiliated/fax JOIN :#esoteric < 1266673820 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1266673822 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :http://www.maxmnd.com/index.php < 1266673828 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hi MissPiggy < 1266673828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to think of a name for can-be-equalified < 1266673831 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Equalisable? < 1266673846 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1266673848 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :equalified? < 1266673849 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :what? < 1266673859 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :decidible equality < 1266673864 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :unifiable < 1266673893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so I've decided how to do things like inferring "type-class instances" (not really) in my language < 1266673920 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :"Since the trials are completely free, there is no cost or risk to you" < 1266673934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there is a keyword "implicit"; it is usable as the LHS in a type declaration < 1266673947 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Beyond not realizing that you have to cancel [if the fine print is legit] or scammers doing whatever they want [otherwise]? < 1266673955 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It makes an association with the type on the right and its corresponding definition (specified like `implicit : a = x`) < 1266673959 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the obvious happens < 1266673995 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :implicit : (card ∅ = 0) = ... < 1266674011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :implicit : Ring ZZ = ... < 1266674014 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1266674049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :incidentally in this way we can read "implicit : a = x" as "The proof that a is true is..." so we can view "Ring a" as "a is a Ring" rather than "the Ringy stuff for a" < 1266674053 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even though it's a value < 1266674165 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: http://filebin.ca/djzwuz/on-syntax.pdf < 1266674186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :be warned that the syntax in there might not be so excellent; it was written while tired :P < 1266674466 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's a good point in consisent < 1266674529 0 :MigoMipo!~migomipo@84-217-11-242.tn.glocalnet.net JOIN :#esoteric < 1266674571 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one-page articles are a nice idea < 1266674621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: can you think of any problems w/ my implicit idea? < 1266674634 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :one is in e.g. Ring when you want to have the ring properties and name them implicit < 1266674640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you have to name the type again when defining them < 1266674642 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i don't see a problem with that < 1266674645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the type is the name in some sense < 1266674745 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I think that implicit stuff sucks but I didn't want to say :P < 1266674765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so you want to specify the equality, ring, ... definitions every single time you use a numeric function? < 1266674767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's sweet < 1266674787 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I've still not figured out how to solve that problem < 1266674798 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well i just solved it, and made it work for proofs as well :) < 1266674807 0 :mycroftiv!unknown@unknown.invalid QUIT :Quit: leaving < 1266674815 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think it's a good solution; in a way, when you ask for a member of a type implicitly in a function, you're saying "the value implicit_this_type" < 1266674821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is just a way of making that actually true < 1266675099 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hmm. < 1266675111 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is there something like rings but without the additive inverse? < 1266675122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. something I can put 0, + and * in and have NN be part of it :P < 1266675187 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Hmm: http://en.wikipedia.org/wiki/Rng_(algebra) < 1266675909 0 :addicted!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1266676712 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1266676819 0 :oerjan!~oerjan@hagbart.nvg.ntnu.no JOIN :#esoteric < 1266677032 0 :deschutron!unknown@unknown.invalid PART #esoteric :? < 1266677618 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Perverse_sheaf disgusting < 1266678272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :> If Carl Shulman does not let me out of the box, I will Paypal him $25. If he < 1266678272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :> does let me out of the box, Carl Shulman will donate $2500 (CDN) to SIAI. < 1266678278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Those... are high fucking stakes. < 1266678296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :shit, he released it in the end < 1266678304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Deewiant: know how you said high stakes? < 1266678319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this guy donated $2500 2005 canadian dollars to SIAI because he let the AI out < 1266678343 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :I didn't say high stakes < 1266678349 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Well, someone did. < 1266678362 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :a wizard did it < 1266678394 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Personally, if I was risking >1000 currency, I would try really fucking hard to be as close as possible to bashing no on the keyboard while staying within the test rules. < 1266678403 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think everyone else would, too. < 1266678408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :'part from richies. < 1266678625 0 :Deewiant!unknown@unknown.invalid PRIVMSG #esoteric :In the next one the human bet $2500 US and won, keeping the AI in the box. < 1266678641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes. Of course. I agree that Eliezer is no god. :) < 1266678653 0 :deschutron!~alex@115-166-55-84.ip.adam.com.au JOIN :#esoteric < 1266678670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But the existence of /anyone/ losing such a challenge with such stakes for them if they lose is striking. < 1266678678 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but I don't think he did it for the money < 1266678687 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah I agree < 1266678705 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah but no matter what i'm doing something for if I think "if i say yes i'll lose $2500 cad" would be pretty motivating < 1266678711 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even if it's towards an organisation you support < 1266678741 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : therefore, floor(1/x) = 1 if x = 1; 0 otherwise <-- forgetting negative numbers here? < 1266678757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: clearly by 'integers' i meant 'naturals' < 1266678760 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :not that it makes any difference to the rest of your argument < 1266678770 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266678936 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i think that shifting + integer division might allow you to do multiplication in _less_ loop iterations than just addition < 1266678947 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :if you're clever < 1266678968 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266679000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: also I thought of a computable variant of ring computing < 1266679023 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :hm? < 1266679024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :let 1 = identity; let infinity = _|_ < 1266679028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :infinity+x = infinity < 1266679033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :infinity*x = infinity < 1266679042 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we already know that 1=identity works < 1266679043 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now < 1266679047 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we need an additive identity < 1266679051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :let 0 = foo < 1266679055 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :foo x = magic < 1266679056 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where < 1266679062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :magic + y = y < 1266679067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f magic = magic for all other f < 1266679071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tada < 1266679073 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :o_o < 1266679083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :admittedly "magic" is _not_ the most unesoteric value ever dreamed of < 1266679093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but it's basically like _|_ except warm and cuddly if you add it up :P < 1266679118 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so what is infinity + (-infinity) *cough* < 1266679135 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :0! < 1266679139 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: can't we just make it rng computing :P < 1266679146 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or whatever ring-without-negative is < 1266679153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yes but we need it turing computable :P < 1266679157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway hmm < 1266679164 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: well yes in fact i think cpressey may done that already < 1266679172 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(vague recall) < 1266679174 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he did ring computing with negatives < 1266679178 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in 2007, even < 1266679180 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :dunno why he's gone back to it < 1266679183 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean before that < 1266679195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://catseye.tc/projects/burro/doc/website_burro.html < 1266679197 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :check it < 1266679211 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway < 1266679217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-0 = 0, obviously < 1266679230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so we don't need to invert magic which I'm thankful for; I've never seen a value so weird < 1266679243 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :-1 is easy < 1266679246 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but -infinity? < 1266679250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266679254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the problem is that you can do -(nonterminating) < 1266679261 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can't pattern match on -infinity, just like infinity < 1266679273 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Clearly, I must ask Wolfram Alpha. < 1266679285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Apparently, infinity + -infinity = indeterminate. < 1266679294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Indeterminate could be said to be _|_. < 1266679305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Therefore, infinity + -infinity = infinity. Therefore, -infinity = infinity. < 1266679308 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Happy? < 1266679308 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :How does infinity - infinity = 0? < 1266679312 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Or was that a joke? < 1266679327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Because x - x = 0; but really there's multiple interpretations. < 1266679331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Mine is the computable one :P < 1266679336 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: burro is a group, not a ring < 1266679338 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Even though it sort of breaks the x+-x = 0 no exceptions thing < 1266679348 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean, we're not using infinity as /the result/ < 1266679357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :We're just saying that infinity + -infinity never yields a value, i.e. it is bottom. < 1266679364 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It just so happens that we have a name for bottom in our language, infinity. < 1266679378 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So we can say that infinity + -infinity = infinity, but really the failure to terminate is at a higher-level in the system: the evaluator. < 1266679392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Are we allowed to do that? :-) < 1266679402 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: infinity + -infinity indeterminate is allowed in the extended reals precisely because they are _not_ a ring < 1266679409 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(or group, even) < 1266679431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i was thinking more that infinity + -infinity "has a value" < 1266679433 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just unknowable < 1266679603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"AI-Box Experiment #3 gave the AI a minimum time of four hours. I would < 1266679603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :recommend 4-6 hours for future Experiments. Typing is slower than speech." < 1266679605 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Endurance typing. < 1266679776 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise nonstandard analysis < 1266679787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I prefer bullshitology :) < 1266679793 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I can just throw about terms < 1266679795 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like "unknowable" < 1266679797 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266679797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it all works < 1266679811 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you are missing out on the good stuff though < 1266679824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :infinitesimals are sexy though < 1266679836 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: some day you'll find a time cube inside your ideas though, and then you will know that all hope is lost < 1266679849 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i already accept the cubic truth < 1266679865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey someone come up with a formal mathematical system with -1*-1=-1 < 1266679868 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lolololol < 1266679887 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: any ring of characteristic 2 < 1266679894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"criticism of non-standard analysis, by Halmos,[who?]" < 1266679897 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(including some fields) < 1266679899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : You do not know who Halmos is. < 1266679909 0 :kar8nga!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266679919 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of _course_ i know who halmos is < 1266679930 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1266679934 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :misread < 1266679934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's that guy who made the qed symbol! :P < 1266679962 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :?(?(e){c}){c}this is valid, however pointless it is < 1266679963 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ummmmmm so I should do something today instead of waste it < 1266679967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: only if it's fun < 1266679986 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I guess I'll have a bath < 1266679988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: READ THE ED STORIES (if I try hard enough, will this become a meme on the annoyingness order of PSOX?) < 1266680014 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah the ed stories are good, I haven't finished them < 1266680025 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :alise, READ THE FINE STRUCTURE STORIES < 1266680034 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :NOOOOOOOOOOOOOOOO < 1266680061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ed stories would make a good film < 1266680110 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(would fine structure?) < 1266680163 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION makes a link to Halmos. < 1266680185 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Um, possibly not. The setting jumps around quite a bit < 1266680195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a link to Halmos < 1266680203 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: Does in movies, too :P < 1266680212 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Just might have to rearrange things so there's fewer switches < 1266680213 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: instead of the [who?], wiseass < 1266680300 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'd suggest another reason it might not be movie-able, but it would be spoilery < 1266680346 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: does everyone die? that's rather acceptable. extremely LURID sex? just call it a porn drama! scenes set in the platonic world of abstract mathematics? *that* could be a problem. < 1266680352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(only say if it's any of them, not a specific one :P) < 1266680385 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :One of those is the case, but it wasn't what I was thinking of in particular < 1266680394 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :well, actually, not quite < 1266680421 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is it the first one, or one of the second two? < 1266680443 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :One of the second two < 1266680469 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm guessing probably _not_ the last one < 1266680477 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :extremely lurid sex set in the platonic world of abstract mathematics. < 1266680506 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Go read the first Fine Structure story < 1266680514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: the special effects? < 1266680523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I read up to the one where the girl (I think) can go through matter or something < 1266680528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :literally first page of that < 1266680530 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then stopped < 1266680581 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh. I was thinking of Unbelievable Scenes [in relation to your options] < 1266680588 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :And it's a guy who can go through matter < 1266680601 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*Unbelievable Scenes in Space < 1266680628 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I do not know what that is. < 1266680636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Fine Structure used to be unordered, IIRC. < 1266680642 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It was just a collection of stories, then he jiggled them about. < 1266680701 0 :addicted!~addicted@217.219.111.150 JOIN :#esoteric < 1266680703 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm, I just thought of another scene that may be difficult to depict visually < 1266680728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway the going-through-matter thing isn't hard < 1266680734 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's like, standard effects stuff nowadays :P < 1266680742 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :I'm not thinking of that < 1266680747 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sgeo: "And then, HE SAW PI." < 1266680749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"ALL OF IT" < 1266680752 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :No < 1266680772 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Oh, you mean using a narrator to depict stuff? < 1266680785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No, I just meant ridiculously impossible things :P < 1266680802 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is watching SG-1 < 1266680826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, now I have "Pi" in my head. < 1266680874 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :all of it? < 1266680898 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.songmeanings.net/songs/view/3530822107858715600/ < 1266680907 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/watch?v=Mfr7xG6smhU < 1266681012 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :ACTION saw that < 1266681028 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Can't remember if that's the same song that.. < 1266681031 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :yes, it is < 1266681299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why do most languages lack such basic things as reading/writing numbers to arbitrary bases in the stdlib < 1266681320 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it seems people just thought of the most common operations and never thought to parametrise them... or even to look at mathematics < 1266681399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: hey you know we were talking consciousness? < 1266681420 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I found a paper by Nick Bostrom supporting two identical but separate brains experiencing two separate qualia-thingies < 1266681425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's good < 1266681429 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think I've changed my opinion because of it < 1266681430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://www.springerlink.com/index/V1X24V662H5726W5.pdf < 1266681449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ugh wants you to log in < 1266681449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sec < 1266681457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i have the pdf here < 1266681478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: http://filebin.ca/watags/experience.pdf < 1266681625 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you have a springer link accout o_O < 1266681631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no :) < 1266681647 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i have a computer that can access lesswrong.com, and i read a post where someone linked to a pdf < 1266681658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but uhh if you're impressed by that, I guess I should get an account < 1266681677 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266681692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but yeah... fuck non-open papers < 1266681694 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with a chainsaw < 1266681736 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION doesn't believe in qualia :( < 1266681742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well you don't have to < 1266681751 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just being used as a less ambiguous term for consciousness < 1266681764 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but qualia /are/ real; you know how you agreed totally with that Dennett video? < 1266681774 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"A hardcore physicalist might be tempted to dismiss this question as being merely < 1266681777 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :terminological. However, I believe that we can give content to the question by < 1266681778 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well - [Daniel Dennett writes that qualia is "an unfamiliar term for something that could not be more familiar to each of us: the ways things seem to us."] < 1266681781 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :linking it to significant ethical and epistemological issues." < 1266681783 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Dennett believes in qualia :) < 1266681805 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise well Dennet said various obviously true statements collect in such a way that it gave him a strong context to argue against religion < 1266681809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :qualia != metaphysics < 1266681843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think you have a faulty heuristics system; it has some sort of rule "attempts to define aspects of consciousness => probably metaphysics => don't believe with high probability" < 1266681855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that's not true < 1266681860 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well I don't actually know what metaphysics is.. < 1266681865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bullshit :P < 1266681871 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like "we have a soul" < 1266681886 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"It is not easy to say what metaphysics is" -- groan < 1266681887 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :often "consciousness" is substituted for "soul" but they don't /mean/ what sane people mean when they say consciousness < 1266681889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they mean "soul" < 1266681917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rest assured that though there are metaphysical idiots who believe in a wrong thing they call qualia, qualia as Bostrom and Dennett mean it is just a term for our conscious experiences < 1266681933 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alright < 1266681942 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so don't be put off the paper by it :) < 1266681989 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION is not quite sure if I read this whole paper.. the punchline will be "1 + 1 = 2" < 1266682010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey, it makes a good argument < 1266682059 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :btw a fun thing: if you have an AI that has total flexibility with its thoughts; i.e. it can cause any brain state it likes, but it's in an environment with no colour, it can't experience red (apart from sheer chance by randomly modifying itself, ofc; but that's insanely risky and idiotic) right up until you explain how its brain processes colour < 1266682073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then it can just modify its thoughts so that it is experiencing the red quale :) < 1266682092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(basically a spin on the Mary's room thought experiment, http://en.wikipedia.org/wiki/Mary%27s_room, but that's intended to (unconvincingly) show that qualia are non-physical) < 1266682100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[Later, however, he rejected epiphenomenalism. This, he argues, is due to the fact that when Mary first sees red, she says "wow", so it must be Mary's qualia that causes her to say "wow". This contradicts epiphenomenalism. Since the Mary's room thought experiment seems to create this contradiction, there must be something wrong with it. This is often referred to as the "there must be a reply" reply.]] < 1266682109 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is, yeah, exactly, debunked < 1266682144 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also... is = on types well-defined? < 1266682156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think so, but it makes me uncomfortable because from what i can tell it depends on what names you use < 1266682187 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. (data a = Z | S a) ≠ (data a = Zero | Succ a) < 1266682191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because they're different values < 1266682204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but then two (data a = Z | S a)s in different modules are not equal, either < 1266682211 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so only Foo = Foo < 1266682228 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise hehe! I have tried to work hard on that problem :D < 1266682242 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so I guess equality for types is "are they the same pointer" :) < 1266682265 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :they are isomorphic, so you can't prove they aren't equal... but both assuming they are and assuming they aren't are consistent axioms < 1266682278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well they aren't equal because Z is a distinct value to Zero < 1266682284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for instance < 1266682288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S Z -> S Z < 1266682290 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266682294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S Zero -> type error < 1266682300 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so Zero cannot be of the same type as Z < 1266682305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore type-of Zero != type-of Z < 1266682307 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"Moreover, there are many local stochastic processes, each one of which has a non- < 1266682311 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :zero probability of resulting in the creation of a human brain in any particular < 1266682314 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :possible state.2" < 1266682317 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what ... the... hell.... < 1266682317 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically I want to make * an instance of Collection < 1266682321 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I bet this guy plays the lottery (and thinks he might win) < 1266682329 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: no he doesn't < 1266682346 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he's a bayesian rationalist, just like eliezer < 1266682358 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so why is he making this argument :| < 1266682372 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :have you considered that perhaps you're wrong rather than him? < 1266682373 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :""Therefore, if the universe is indeed infinite then on our current best < 1266682373 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :physical theories all possible human brain-states would, with probability one, be < 1266682377 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :instantiated somewhere," < 1266682379 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that would resolve that cognitive dissonance < 1266682382 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how can I possibly be wrong? < 1266682399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, considering the probability that you might be wrong even for something you think is true is a key part of rationalism :p < 1266682411 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, he's right; it isn't *necessary* but it's probability 1 < 1266682413 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :he says: infinite number of trials for a nonzero probability ==> it has happened < 1266682425 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but that's so silly! < 1266682437 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because all N-sized parts of space = all other adjacent N-sized parts of space is incredibly unlikely < 1266682507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :roconnor has written some interesting things on when it's actually rational to play the lottery http://r6.ca/blog/20090522T015739Z.html < 1266682517 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah I have read that < 1266682579 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :interesting technique this guy uses... < 1266682583 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :who < 1266682591 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :. This is another reason to accept Duplication. *20 < 1266682592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :O'Connor or Bostrom? < 1266682598 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Bostrom < 1266682610 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well see now all I'm doing is wishing I hadn't linked it to you because all you're doing is, every few statements, making a quote and calling it nonsense < 1266682621 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise don't you agree ?? < 1266682625 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I think /both/ of us are less happy/enlightened for this < 1266682641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: that's irrelevant; you're not even considering the arguments or attempting to rebut them for what I can see, which makes me less happy < 1266682653 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because such analysis of arguments is a good thing regardless of if they're true or false < 1266682659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i thought it was, at the very least, interesting < 1266682697 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: http://en.wikipedia.org/wiki/Structural_type_system < 1266682710 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"Some languages may differ on the details (such as whether the features must match in name)." < 1266682715 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :mm < 1266682723 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :imo: < 1266682725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : S Z -> S Z < 1266682725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : but < 1266682725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : S Zero -> type error < 1266682725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : so Zero cannot be of the same type as Z < 1266682725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : therefore type-of Zero != type-of Z < 1266682725 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :proves it < 1266682734 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so.. there is some kind of "quantum physics" thing.. which appears probabilistic and it might randomly generate a human being < 1266682745 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if we have (data a = b) meaning "the data type a, constructors are: b" < 1266682745 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AND the universe is infinte < 1266682752 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :therefore all possible humans have been created < 1266682759 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: it's a _thought experiment_ < 1266682767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :for the purpose of argument < 1266682772 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: and we want to work out (data a = x) == (data b = y) < 1266682780 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we should substitute a with b in x, and b with a in y < 1266682785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and make sure that "works" < 1266682796 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :S Z -> S Z, so substitute the a in a with a b: S Zero -> type error < 1266682800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore the types cannot be equal < 1266682810 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :this deduction is false though, consider the different between a NORMAL and non-NORMAL IRRATIONAL number < 1266682819 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: he did not say < 1266682823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore all possible humans have been created < 1266682824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he said < 1266682828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all possible humans exist with probability 1 < 1266682835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you don't understand the different, read up on probability. < 1266682838 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*difference < 1266682845 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's /very/ important < 1266682855 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well I know what probability 1 means < 1266682863 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then you must agree that it is true < 1266682867 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if an event has probability 1 _it has happened_ < 1266682871 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you are wrong < 1266682872 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1266682906 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if an even has probability 1, every part of the sample space satisfies that event < 1266682907 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :P(x)=1 -> P(not x)=0 < 1266682912 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: NO! < 1266682916 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that is frequentist statistics < 1266682922 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we're talking _bayesian_ statistics < 1266682935 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: this leads easily to a contradiction if you have uncountably many alternatives < 1266682958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Frequency_probability < 1266682958 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Bayesian_probability < 1266682963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Probability_interpretations < 1266682968 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ah so this is something to do with aleph_1 (or more) < 1266682970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Bayesian rulez frequentist droolz, also) < 1266682973 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :uncountable sample space < 1266682976 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: no < 1266682983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we're not talking frequentist statistics dammit :) < 1266683007 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION only talks kolmogorov probability, really < 1266683028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bostrom is (almost certainly; I haven't read it directly, but it's very unlikely he isn't) a bayesian < 1266683036 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so obviously he's talking nonsense per frequentist statistics < 1266683058 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :when he says the universe is infinite, which infinity does he mean? < 1266683062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1266683069 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or does it not matter? < 1266683073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you're focusing on the most irrelevant detail of a thought experiment < 1266683087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the point is that if the universe doesn't have bounds on space, P(every possible brain exists)=1 < 1266683097 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise hey I don't know why it's irrelevant, the argument just sounds completely ridiculous to me and I'm trying to understand why not < 1266683101 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :therefore we assume that this is true, and use this as a thought experiment to show why Unification is nonsensical < 1266683132 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't agree with the derivation of P(every possible brain exists)=1 < 1266683149 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the problem is that we're at a roadblock here < 1266683152 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :suppose in a 1mx1mx1m cube there is 0.1% chance of it happening < 1266683157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :go read everything, I dunno, Eliezer Yudkowsky's written on bayesian statistics < 1266683160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then come back < 1266683162 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and there is countably infinite of these blocks < 1266683173 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: but space isn't divided into blocks < 1266683178 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Then clearly there is a 100% chance of it having already happened. < 1266683180 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266683187 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, how do you derive that? < 1266683201 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the chance of there being some x*y*z region of space, and all adjacent x*y*z regions being identical, recursively < 1266683207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now *that's* low < 1266683219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now extend that to infinite space... < 1266683221 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, why does it matter if space is in blocks or not? < 1266683221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it has probability 0 < 1266683228 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: because it invalidates your argument < 1266683230 0 :scarf!~scarf@unaffiliated/ais523 JOIN :#esoteric < 1266683237 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, isn't that what you want? < 1266683256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I don't want people to have invalid arguments; I want them, and me, to be right about everything < 1266683266 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so if you make an invalid argument I will tell you why it is wrong in the hopes that you will fix your argument < 1266683270 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or accept the opposite < 1266683277 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :scarf: hi < 1266683285 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so okay, space isn't divided into 1mx1mx1m blocks < 1266683286 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1266683295 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so what does it mean 'space is infinite'? < 1266683311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>_< < 1266683317 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :Just that. < 1266683319 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: imo (not bothering to read the actual argument) you assume independence of blocks that are too far away to interact. then countable infinitely many each with 0.1% chance does give probability 1 of at at least one (in fact, infinitely many) hitting that 0.1% chance < 1266683326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there are no bounds on the valid values of x,y,z in an (x,y,z) coordinate < 1266683326 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :pikhq, that's a nonsense statement though < 1266683327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: happy? < 1266683340 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, if so then I dont see why we can't divide space up into blocks < 1266683345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can < 1266683348 0 :pikhq!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: What's nonsense about space being an infinite 3-space? < 1266683348 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay lets do that < 1266683349 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but you can't postulate their inherency < 1266683356 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1266683365 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you are saying there might be some dependent probability between them < 1266683398 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :when he says there is a nonzero probability, I wonder if he means a finite probability or an infintesimal one < 1266683398 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :your classification of space into blocks will be purely arbitrary is what I am saying < 1266683405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can only use them as notational shorthand < 1266683409 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not as part of an argument itself < 1266683413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: finite < 1266683425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nonzero probability of x = P(x)>0 < 1266683447 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so lets assume the universe is divisible into countably many 1m^3 blocks, and each one has a proability 0.1% of creating a human brain < 1266683461 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :creating? < 1266683461 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in two of these blocks there is what? 0.2% probability? < 1266683464 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :space doesn't "create" anything < 1266683471 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"Moreover, there are many local stochastic processes, each one of which has a non- < 1266683475 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :zero probability of resulting in the creation of a human brain in any particular < 1266683478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266683478 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :possible state.2" < 1266683480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :PROCESSes < 1266683481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not space < 1266683498 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: just a question < 1266683504 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay lets cut space into countably many cells, each of which one of these processess are happening < 1266683504 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :do you even know what bayesian probability is? < 1266683512 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if not... we cannot possibly have this conversation < 1266683515 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in two of these blocks there is 0.02% probability? < 1266683549 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and if we have a million blocks there is 1000000x0.1% probability (which is greater than 1!) < 1266683560 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and if we have countably infinite there is a divergent probability < 1266683564 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Bayes%27_theorem anyway < 1266683574 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so this guys argument is basically nonsense, agreed? < 1266683576 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :read it, learn, *then* come back < 1266683583 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I know bayes theorem alise < 1266683591 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: no, I am almost certain you have no idea about how bayesian probability works < 1266683595 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: you really need to assume independence of the blocks to do a meaningful calculation here, imo < 1266683598 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I do not agree < 1266683614 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I will admit I got Yudkowskis breast cancer experiment wrong < 1266683622 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :in which case you take 1 - (1-0.02%)^n < 1266683626 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stop spelling his name wrong < 1266683635 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1266683641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::p < 1266683683 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i fucking hate zooko's triangle!! < 1266683685 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i want my free lunch < 1266683696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: you don't _sum_ probabilities unless they are mutually exclusive events < 1266683697 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266683724 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oerjan I was assuming they are mutually exclusive, that seems to be in line with the idea of a 'local' event < 1266683751 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: mutually exclusive means it cannot happen in two blocks simultaneously. that seems nonsense. < 1266683759 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266683763 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I meant independent sorry < 1266683776 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: in which case summing is even more wrong :D < 1266683787 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : in which case you take 1 - (1-0.02%)^n < 1266683816 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um, 0.1% there < 1266683892 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wish there was a mathematical hierarchy for things like sets and lists like there are for numbers < 1266683895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :monoids, rings, etc etc etc < 1266683899 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :collections, sequences, etc etc etc < 1266683900 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ACTION also sees absolutely no reason to bother with frequentist vs. bayesian distinctions for this argument < 1266683912 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh so if we have blocks A and B, then for it to happen in A only: 0.1% * (1-0.1%) (same for B only), and for it to happen in A and B it's 0.1%^2, so the chance of it happening in at least one is 2(0.1%)(1-0.1%)+(0.1%)^2 < 1266683920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :as it is the reasoned language designer must come up with his own hierarchy :( < 1266683936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: well, i was mentioning it /in case it came up/ because if it does it will be bayesian statistics being used < 1266683946 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266684020 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay maybe this would work better if I shut up an alise explains the paragaph? please :) < 1266684021 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: which conveniently is easier to calculate by multiplying the probabilities of it _not_ happening in either < 1266684037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I wouldn't know how to explain it; I can understand it but not serialise my understanding function. < 1266684049 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise so it's bullshit < 1266684050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Especially as I'm not sure exactly what you don't get. I'll leave the dirty work to oerjan. :) < 1266684056 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: That does not follow; you are being irrational. < 1266684071 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :this pretending to be a rationalist thing is kind of lame < 1266684094 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes, because we were talking about statistics and because I am saying you are being irrational, I am some sort of fake imposter rationalist! < 1266684099 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: now if we have n blocks, the chance of it happening in none is (1-0.1%)^n, which -> 0 when n -> infinity < 1266684100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yawn. < 1266684124 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oerjan how do you derive that formual though < 1266684140 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :say the chance of it happening in one block is p, < 1266684142 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's the definition of independence in probability theory < 1266684144 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :then chance of not happening is 1-p < 1266684155 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the chance of not happening in both blocks is (1-p)^2 < 1266684163 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :P(A and B) = P(A)*P(B) < 1266684171 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so that works out nicely, < 1266684183 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but let us consider, the chance of it happening in two blocks = 2p < 1266684187 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why is that false? < 1266684206 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :or, can I use the divergence of that (when the number of blocks reaches infinity) to show this statement is bogus < 1266684228 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it's false because you can only sum exclusive events < 1266684265 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :that alise, Miss Piggy argument is better when you read alise as being voiced by kermit the frog < 1266684276 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::-D < 1266684290 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :P(A or B) = P(A) + P(B) - P(A and B), if P(A and B) != 0 then it's not just the sum of each < 1266684315 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1266684318 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but say, p = 0.1 < 1266684327 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ohh < 1266684329 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay yeah < 1266684342 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so right the probability is 1! < 1266684378 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1266684379 0 :oklopol!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266684384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yay! < 1266684387 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now we are all happy! < 1266684410 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266684428 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if I want to be able to do things like "foo : card empty = 0" (card=cardinality) < 1266684434 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then I need = to return a type < 1266684437 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so I need True/False to be types < 1266684451 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so I need Bool be a type whose values are the type True and the type False < 1266684465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and True to be a type with one value, refl or whatever < 1266684470 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and False to be a type with no values, i.e. Void < 1266684480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which also lets us use False as the constructivist _|_ < 1266684493 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :e.g. (p, Not p) -> False < 1266684510 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm, hey < 1266684516 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so what does probability one mean? < 1266684516 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :can you constructively prove that False -> a? < 1266684523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: that the probability of it not happening is zero < 1266684530 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alsie that's the induction scheme for the empty type < 1266684547 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you have a value of False it's bottom but that doesn't mean you can treat it as an a < 1266684550 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise no what does it mean < 1266684551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(because `data False`) < 1266684557 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well it means exactly that < 1266684562 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::/ < 1266684574 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: you give him a boring, actually useful explanation < 1266684575 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: calculating with probabilities is easy, understanding what they mean is i guess where you need to get into that interpretation stuff < 1266684578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(bayesian this time since it /does/ matter) < 1266684602 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: except i hate that stuff myself... :D < 1266684615 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :define that stuff < 1266684625 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :"that interpretation stuff" < 1266684629 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : 1. Frequentists talk about probabilities only when dealing with experiments that are random and well-defined. The probability of a random event denotes the relative frequency of occurrence of an experiment's outcome, when repeating the experiment. Frequentists consider probability to be the relative frequency "in the long run" of outcomes.[1] < 1266684630 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : 2. Bayesians, however, assign probabilities to any statement whatsoever, even when no random process is involved. Probability, for a Bayesian, is a way to represent an individual's degree of belief in a statement, given the evidence. < 1266684640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: you probably think of #1 as the intuitive meaning of probability thus your confusion < 1266684645 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but bostrom as a bayesian means #2 < 1266684656 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, my confusion what that I didn't know how to add probalities :| < 1266684661 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[[An impossible event has a probability of 0, and a certain event has a probability of 1. However, the converses are not always true: probability 0 events are not always impossible, nor probability 1 events certain. The rather subtle distinction between "certain" and "probability 1" is treated at greater length in the article on "almost surely".]] < 1266684663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Almost_surely < 1266684676 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: your confusion because you thought prob = 1 = has happened < 1266684683 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric : can you constructively prove that False -> a? <-- is an axiom i think < 1266684687 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically though just read http://en.wikipedia.org/wiki/Almost_surely < 1266684704 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: Haskell is a constructivist logic, right, if you make sure never to use _|_? < 1266684717 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :trying to treat haskel as a logic is a mistake < 1266684717 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :You can't do `data False` and then write a `False -> a` in Haskell, at least < 1266684720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I know < 1266684728 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :just pretend haskell lets you do < 1266684734 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :magic f = case f of {} < 1266684735 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but if you require a proof of totality in some other lang, and remove undefined and unsafePerformIO and unsafeCoerce and the FFI < 1266684747 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then it should be a constructivist logic I think < 1266684749 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :which is actually valid in Coq < 1266684755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess so < 1266684764 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway my main point is < 1266684787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thetype True = {refl:True} < 1266684790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thetype False = {} < 1266684791 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thetype Bool = {True:*, False:*} < 1266684798 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I:True is used in Coq < 1266684800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :does this make sense? and is it a good idea? < 1266684801 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or is it a pitfall < 1266684802 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: avoiding full recursion is more important i should think < 1266684806 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Bool doesn't make sense < 1266684811 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: thus the requirement of a proof of totality < 1266684814 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(well you need that to construct _|_ of course) < 1266684826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: hmm are you sure? < 1266684834 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :to me it doesn't make sense! < 1266684836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you have unions you can't say that a value is of only one type < 1266684847 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so it's not a stretch to have True be both a * and a Bool < 1266684855 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it just means that < 1266684857 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Bool is-a-subset-of * < 1266684861 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and there's nothing wrong with that! < 1266684872 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :maybe yeah I suppose you could make that work.......... < 1266684881 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's a bit scary though < 1266684893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it means we can stop doing everything at both value and type level every time we want to get our dependent shizzit on < 1266684904 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yeah but I want * to be a Collection anyway :-) < 1266684927 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so i'm sort of already in the direction of "hey these are actually quite ... tangible" < 1266685004 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :probability 1 only means surely in the case of a finite space? < 1266685017 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: countable works too < 1266685026 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh! < 1266685040 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so it's sort about aleph_1 < 1266685043 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :probabilities are lebesgue measures, so countably additive < 1266685071 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :s/lebesgue measures/measures/ < 1266685103 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(invented by lebesgue, in any case) < 1266685118 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(and adapted to probabilities by kolmogorov, iirc) < 1266685127 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay < 1266685154 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :probability 1 doesn't really tell you anything then :| < 1266685165 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :because who knows which infinite we have < 1266685199 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well you can pretend it means surely, as long as you only test countably many cases < 1266685225 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :haha my mistake from earlier was soooo stupid < 1266685244 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if you flip a coin twice it doesn't mean you will have seen heads and tails < 1266685253 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :and for brains, well assuming you have some limited precision, it seems like there would be only finitely many possibilities that could fit into a 1m^3 cube < 1266685324 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :that's my intuition on that anyway - the distinction between probability 1 and surely is only needed because of uncountability stuff < 1266685362 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :so _in practice_ it means surely < 1266685364 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :okay! < 1266685373 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1266685382 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :in practice?? what about this situation < 1266685401 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :we are assuming the universe to be divisible into countably many blocks? < 1266685424 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't think there's any evidence for that rather than uncountable < 1266685439 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well you could just take a countable subset of them... < 1266685463 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes but that wouldn't cover the whole universe < 1266685488 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well no, but you need only to get all your brains into part of it to prove they exist :D < 1266685489 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wait this is paradoxical < 1266685498 0 :addicted!unknown@unknown.invalid QUIT :Quit: Konversation terminated! < 1266685509 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :it needs to be a random subset, i guess < 1266685509 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how can you have it certinaly happening in a countable subset, but we're not sure if it will in an uncountable one.. < 1266685574 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :of course if it's not random, everything's out the window anyway, just pick a subset that does _not_ include all possible brains (say, because you explicitly look for only one type) < 1266685604 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :blegh! now I know how finitists feel! < 1266685610 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :heh < 1266685618 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I just want to say "but you can't apply this probability argument to INFINTE SPACE" < 1266685628 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but I don't want to give up on understand this either < 1266685662 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I mean really this argument can prove anything has probability 1... < 1266685695 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I could argue in the same way there is a guy who /is capable of and is right now/ about to tell me something through some kind of interstellar mobile phone < 1266685704 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: http://en.wikipedia.org/wiki/Kolmogorov's_zero-one_law < 1266685705 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but this it doesn't happen... < 1266685722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no you can't < 1266685746 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :that might be because the universe isn't actually infinite. < 1266685749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could prove that in an infinite universe there is probability 1 that there is a planet exactly like earth somewhere except where that is happening < 1266685768 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but you're almost certainly not on that earth, and the universe might not even be infinite. < 1266685770 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :deschutron yeah, but for this argument he is assuming it is infinite (which infinity?) < 1266685773 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it's still only probability-1 < 1266685775 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not _does_ exist < 1266685801 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise why can't I show there's someone who is about to phone ME? why do they have to be phoning someone else < 1266685808 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :say, do set theorists have a symbol for the set of all sets? or has russell scarred them away from that < 1266685816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :another place where type and set theory clash :P < 1266685819 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that person is in another block < 1266685833 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: they could phone you if you had an interstellar phone that somehow did FT < 1266685835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*FTL < 1266685841 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but since it's about *the size of space* < 1266685843 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah so maybe FTL is impossible < 1266685845 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can't apply it to earth < 1266685848 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is very finite, and small < 1266685867 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so this is evidence against FLT :P < 1266685870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the whole point is that there is probability one that ****somewhere**** in space there is a copy of this planet except with that guy < 1266685875 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :about to phone that earth's you < 1266685895 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I wish there was a nice symbol for the holes in mixfix operators < 1266685916 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :in an infinite universe, there would be copies of both versions - you being phoned and you not being phoned. < 1266685930 0 :deschutron!unknown@unknown.invalid PRIVMSG #esoteric :as long as the phoning follows the laws of physics :P < 1266686002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not there would be < 1266686006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there is probability 1 that there would be < 1266686007 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also dammit < 1266686010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I really want some sugar for < 1266686021 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(a:t)->(b:t)->(c:t)->...->foo < 1266686025 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: a bullet? < 1266686028 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gives alise a bowl of sugar < 1266686033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like for types, forall a b c. is that for t=Type < 1266686040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe I should just generalise forall < 1266686042 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x^bar : t^bar -> foo < 1266686051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and let you do forall (a:somethingotherthanType) < 1266686053 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :vector notation like in physics < 1266686058 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :forall (a:t) (b:t) (c:t). < 1266686064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in fact forall a implies an implicit argument < 1266686069 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which I'm fine with it's equivalent < 1266686077 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :forall (a b c : t). < 1266686085 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266686093 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: actually that link above was maybe not quite what i thought it was, http://en.wikipedia.org/wiki/Law_of_large_numbers#Strong_law is closer < 1266686128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :assoc : (a:m) → (b:m) → (c:m) → (a·b)·c = a·(b·c) < 1266686129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :becomes < 1266686158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :assoc : ∀a b c : m. (a·b)·c = a·(b·c) < 1266686161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is equiv. to < 1266686170 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :assoc : {a:m} → {b:m} → {c:m} → (a·b)·c = a·(b·c) < 1266686182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess the a/b/c will be inferred to be 0 < 1266686188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since from inside monoid that's the only m you know exists < 1266686189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266686195 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you also know that 00 exists :P < 1266686202 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and so on < 1266686207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266686209 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: maybe I should just let you do < 1266686217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(a, b, c : m) -> ... < 1266686224 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it just feels weird to have them all on one side of a -> so to speak < 1266686225 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :whats the poit of the commas? < 1266686227 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it nests rightwards < 1266686235 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: otherwise it's pattern matching :P < 1266686237 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's like writing < 1266686240 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :let a b c = m < 1266686246 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :defines a function a < 1266686259 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :e.g. you can do (Just a : Maybe) -> ... < 1266686289 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ok < 1266686324 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the problem is that (a,b:t)->s is (a:t)->((b:t)->s) < 1266686331 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whereas it looks like something confined to the LHS < 1266686349 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the problem with the forall one is that they become implicit arguments, which usually isn't desired < 1266686362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, you only really use this for propositiosn < 1266686367 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*propositions < 1266686385 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you wouldn't say () : (_, _ : m) -> m < 1266686387 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because that's just ridiculous < 1266686391 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so i dunno < 1266686430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://r6.ca/blog/20030729T014400Z.html < 1266686431 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :m -> m -> m < 1266686445 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apparently agda uses (a:t)(b:s)->r < 1266686447 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266686448 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coq < 1266686449 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not agda < 1266686453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not sure what it translates to though < 1266686535 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's not valid < 1266686554 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(f:Morphism)(g:Morphism)->(Range g)=(Domain f)->Morphism < 1266686558 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :has to be rewritten as < 1266686561 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :forall (f:Morphism)(g:Morphism),(Range g)=(Domain f)->Morphism < 1266686563 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :to be accepted < 1266686578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well it is a post from 2003 < 1266686581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so maybe it was valid then < 1266686589 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ok so coq adopts my notation too < 1266686596 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :forall that is < 1266686602 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I just simplify it to let you name the type only once < 1266686621 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and uses a comma to separate forall and the rhs, I like that < 1266686756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1266686765 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :naturals and rings and stuff can be monoids under addition /or/ multiplication < 1266686785 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :does this mean I shouldn't name the identity and thingy functions 0 and *? :( < 1266686799 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :additiveMonoid < 1266686802 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266686816 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I use e and & < 1266686816 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :e&e = e < 1266686824 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266686825 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266686833 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it'd be so orgasmically awesome to be using monoids every time you multiply < 1266686849 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm. < 1266686852 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"Aliselang: You *do* need to know category theory to get things done in THIS one!" < 1266686858 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :The date on this thing has to be wron < 1266686860 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :*wrong < 1266686872 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :erm, time < 1266686918 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: also it wouldn't be the type of monoid that changes < 1266686920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just two different instances :) < 1266686930 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :who says you can't have two values of type Monoid ZZ < 1266687042 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but damn < 1266687049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i really was all COOL SHIT about calling 'em 0 and * < 1266687053 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i feel so humbled < 1266687079 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i am ensaddened < 1266687110 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :um you know 0 goes with + and 1 with *, usually... < 1266687152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1266687158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but I was literally going to have: < 1266687188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Monoid : Type -> Type < 1266687188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Monoid a = { < 1266687188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : 0 : a < 1266687188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (*) : a -> a -> a < 1266687188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : assoc : forall (a:m) (b:m) (c:m), (a*b)*c = a*(b*c) < 1266687189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ...the identity element property that I can't have here because it leads to saying 0*x=x... < 1266687191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1266687212 0 :deschutron!unknown@unknown.invalid PART #esoteric :? < 1266687216 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :O_o < 1266687283 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what < 1266687292 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm < 1266687293 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Moniod m (&) e = Semigroup m (&) /\ Identity m (&) e ? < 1266687296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think i'm totally wrong and confused < 1266687304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because something is going wrong. in my brain. < 1266687305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: lol < 1266687313 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :olol :( < 1266687343 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266687345 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :alise: hey don't have a stroke, now < 1266687347 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I should have a semigroup < 1266687356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...also i need some sort of sugar for defining a bunch of "instances" < 1266687368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise you'll have like 50 instance values of a few lines each < 1266687376 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just to get + - and * :P < 1266687401 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh great, and I need magmas too if I really want to get down 'n dirty < 1266687408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :kill me now < 1266687438 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the problem is even worse < 1266687446 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it doesn't seem like a linear heirarchy... < 1266687453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Magma : Set -> Set < 1266687453 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Magma a = { < 1266687454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : () : a -> a -> a < 1266687454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1266687462 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Most useful typeclasswhatever ever? < 1266687464 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes! < 1266687465 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :how about < 1266687472 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :In fact you know what? < 1266687477 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Magma a (•) = True < 1266687481 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Magma a) is equivalent to (a -> a -> a) < 1266687493 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: lol you've adopted my set/type idea < 1266687510 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :have I !! < 1266687515 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266687518 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set = a -> Bool < 1266687546 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :aahaha < 1266687548 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, since Magma a ≡ (a -> a -> a), I don't need it. < 1266687552 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes yo udo ! < 1266687558 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :At the most, I need Magma = a -> a -> a < 1266687562 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I don't. < 1266687570 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :{ x : t } ≡ t < 1266687585 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Magma a = { () : a -> a -> a } < 1266687595 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :∴ Magma a ≡ a -> a -> a < 1266687620 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So at the most, I need Magma a = a -> a -> a; a simple alias. But I think it is easier just to write a -> a -> a. < 1266687719 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: So why do I need Magma? < 1266687758 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Say... < 1266687764 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I run into problems using = for my relationships like associativity. < 1266687771 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Specifically, I require a definition of equality for that set. < 1266687777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I should instead use ≡, I think. < 1266687795 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :≡ : a -> a -> IsEquivalent a a < 1266687801 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Hm < 1266687804 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so basically (a ≡ b) is a proof that a and b have identical semantics < 1266687809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(misspiggy: is this well defined?) < 1266687820 0 :Sgeo!unknown@unknown.invalid PRIVMSG #esoteric :Is there a page where I can see what it's like to visit an SSL website with a revoked certificate? < 1266687837 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :≡ tends to be used for definitions, no? < 1266687868 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't use it for definitions, so < 1266687870 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric := is when you apply not just definitions, but also properties and axioms < 1266687873 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it does mean "is equivalent to" < 1266687887 0 :Gracenotes!unknown@unknown.invalid PRIVMSG #esoteric :maybe semantics proofs has it otherwise < 1266687901 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION tries to think of a nice, non-* binary op name for the semigroup operation < 1266688126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Semigroup : Set -> Set < 1266688126 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Semigroup a = { < 1266688127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (something) : a -> a -> a < 1266688127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : assoc : forall (x:a) (y:a) (z:a), (xy)z === x(yz) < 1266688127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1266688152 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :set theory is hotttt < 1266688260 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no it's not!!!!!!!!! < 1266688264 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WHY NOT < 1266688274 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Perverse_sheaf < 1266688291 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with perversity < 1266688358 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i want all these lovely proofy things but i want partiality :( is there a therapy group for me < 1266688455 0 :kar8nga!~kar8nga@jol13-1-82-66-176-74.fbx.proxad.net JOIN :#esoteric < 1266688470 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes you do need therapy < 1266688473 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :at least you can admit that.. < 1266688485 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1266688493 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set_1 in agda is Set->Set right? < 1266688500 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no don't think so < 1266688502 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Set : Set1 < 1266688506 0 :SimonRC!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1266688506 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Set1 : Set2 < 1266688513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266688524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so Set_n is "set of {sets*n+1}" < 1266688526 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set : set of sets < 1266688529 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set1 : Set of (set of sets) < 1266688536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so Semigroup : Set1 means that Semigroup is a set of sets < 1266688543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so (a -> Bool) -> Bool < 1266688556 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so Semigroup a means "is the set 'a' a Semigroup?" < 1266688568 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :now if only I understood the definition :) < 1266688619 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm wait < 1266688654 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so does {Semigroup a} -> mean "a set 'a' that is a semigroup"? < 1266688664 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so then Semigroup a :: Set < 1266688673 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but then is the resulting set a, or the semigroup stuff? < 1266688675 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is confusing < 1266688829 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266688837 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: look at agda's stdlib lib/Algebra.agda < 1266688853 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whenever there's controversy < 1266688854 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they're just like < 1266688856 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh we'll put both in < 1266688860 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :SemiringWithoutAnnihilatingZero < 1266688933 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I find it strange how many types Agda folk like to hide their things behind < 1266688936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : _∙_ : Op₂ Carrier < 1266688946 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why is this better than _∙_ : Carrier -> Carrier -> Carrier? < 1266688962 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :good question < 1266688964 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :idk < 1266688981 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess it's so that you repeat less and have "more semantic" types < 1266688984 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but I just find it obscures the meaning < 1266688997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, < 1266688999 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : _≈_ : Rel Carrier zero < 1266689001 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that is so a copout < 1266689010 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just including "some sort of kinda equal thing that you want to be for the associativity" < 1266689022 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a ≡ b ftw < 1266689040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_≡_ : a -> b -> Bool < 1266689044 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(except you use it as a type, obviously) < 1266689053 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just exploiting that Bool is True-or-False < 1266689062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and we use ≡ to prove two expressions equivalent < 1266689089 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with < 1266689105 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Identity : forall T : *, T -> T -> * < 1266689122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what's the result? < 1266689128 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :reflexivity : forall (T : *) (t : T), Identity T t t < 1266689151 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :clearly if a and b have the same normal form, then reflexivity _ a : Identity _ a b < 1266689203 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, agda calls the identity element of a monoid ε < 1266689204 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :good choice < 1266689272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A monoid whose operation is commutative is called a commutative monoid (or, less commonly, an abelian monoid). < 1266689272 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what's wrong with e < 1266689277 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh, I've only ever heard abelian monoid < 1266689285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well e is just an approximation of \epsilon used because we can't type e :P < 1266689296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, because naming a parameter e is... not uncommon < 1266689298 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but we use e in math-on-paper :[ < 1266689311 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it'd be nice to still be able to get at monoid identity while doing so < 1266689319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, MissPiggy, what is the result of Identity? < 1266689322 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the * in -> * < 1266689357 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :* is Set < 1266689368 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266689369 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :A : * means A is a type < 1266689370 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but what is its _value_ < 1266689377 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what set is it for some T < 1266689377 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :* is in normal form < 1266689381 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and the two values < 1266689389 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Identity T t t : * < 1266689394 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :3 : Nat : * < 1266689405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Identity Nat 3 2 : * < 1266689411 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266689418 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so what is its use? < 1266689422 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :??? < 1266689426 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what's whats use < 1266689429 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess as part as "reflexivity : forall (T : *) (t : T), Identity T t t" < 1266689433 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*as part of < 1266689436 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's the constructor < 1266689521 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also < 1266689524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Unifiable : Set → Set < 1266689524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Unifiable a = { < 1266689524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : _=_ : a → a → Bool < 1266689524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : leibniz : ∀(f:a→b) (x:a) (y:a). x = y → f x = f y < 1266689524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1266689527 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :too far? < 1266689544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the issue is that you could have something with multiple internal representations that have different values, _but you don't expose the constructors_ < 1266689547 0 :SimonRC!~sc@fof.durge.org JOIN :#esoteric < 1266689550 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so from outside the module you can prove leibniz < 1266689558 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but from inside, where you define the Unifiable instance, you cannot < 1266689566 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can make it Unifiable < 1266689569 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but only from inside a different module :) < 1266689580 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's like quotients < 1266689581 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, proving it may be *spectacularly* hard for some things, I expect < 1266689594 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you can divide a type by an equivalence relation to make a 'smaller' type < 1266689611 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like howso < 1266689676 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey I just had a thought < 1266689687 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :often in my dependent musings I wish to write something like < 1266689713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :optimise : (a:ProgramInSomeLang) -> ((b:ProgramInSomeLang), a `hasTheSameSemanticsAs` b) < 1266689720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but then you need to unpack the tuple and all and it's woeful to use < 1266689720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :BUT < 1266689722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could do < 1266689731 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(substituting Prog and `equiv` for those verbose names) < 1266689741 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :optimise : (a:Prog) -> {a `equiv` b} -> (b:Prog) < 1266689751 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. force the *caller* to prove that the optimisation preserves semantics < 1266689753 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :backwards binding!! < 1266689757 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since it's implicit You Don't Have To Worry About It < 1266689761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: is that a yay or a yikes !! < 1266689782 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :proving something about the result of a function before you can get to it... hehehe < 1266689843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION gets a silly idea of having Axiom be a type < 1266689872 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Axiom : *; Axiom = { foo : *, bar : foo } < 1266689881 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :except you can make non-axiomatic foo/bar pairs with it < 1266689882 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::( < 1266689889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so clearly we need some way to determine whether something is axiomatic :P < 1266689917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Axiom : *; Axiom = { prop : *, axiomatic : isAxiomatic prop } < 1266689981 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so is backwards binding nice or evil or sth? < 1266689988 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :BOTH < 1266690001 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: how's it evil? < 1266690005 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like what horrible things does it let you do < 1266690025 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I don't know it's just hard < 1266690040 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to impl? < 1266690049 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :slow to typecheck or sth? < 1266690066 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :stop writing sth :/ < 1266690148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1266690149 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :old habit < 1266690187 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION cries and weeps < 1266690221 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :for the sth time, stop writing sth < 1266690232 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lLOL < 1266690289 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so is it < 1266690342 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data Identity : (a:*) -> a -> a -> * where reflexivity : forall (x:a). Identity a x x < 1266690352 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so < 1266690362 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :reflexivity : Identity NN 3 3 < 1266690366 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but not reflexivity : Identity NN 3 2 < 1266690414 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess what I'd want then is something that transforms that into the set True or False so I can prove it like any other true/false thing in my lang < 1266690479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: also in your "forall (x:a)" is that basically an implicit argument < 1266690482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think it is I think it iiiiiiis :P < 1266690483 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :huh? < 1266690489 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :huh what < 1266690494 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :forall {x:a}, is implicit < 1266690499 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but forall (x:a), is not < 1266690499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266690505 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but it can be implicit < 1266690511 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I don't see why it shouldn't be < 1266690514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data _≡_ : {a:Set} → a → a → Set where < 1266690514 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : reflexivity : {x:a} → x ≡ x < 1266690531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(substitute another symbol for \equiv if you want, but you get the idea) < 1266690534 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah sure make it implicit if you want that's JUST SYNAX < 1266690534 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :SYNTAX* < 1266690538 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266690544 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that way your proof if inferrable can just be "reflexivity" I think < 1266690551 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266690554 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so is refl = reflexivity? < 1266690558 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't actually know why refl is called refl < 1266690563 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :refl-exivity < 1266690565 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::DDD < 1266690566 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266690569 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but I mean < 1266690573 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's expressing that x = x (forall x) < 1266690575 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :people seem to use the name refl a lot in different types < 1266690583 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(which implies symmetry and transitivity) < 1266690583 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or are they all just specific instances of this? < 1266690594 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like I'm used to thinking of implicit arguments as being filled in with refl. < 1266690606 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh well I don't know which examples you mean -- I haven't seen peopl ues refl much < 1266690637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :perhaps < 1266690640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://en.wikipedia.org/wiki/Quotient_set < 1266690641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so < 1266690641 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we have < 1266690661 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data Frac : * where Over : Z -> Z -> Frac < 1266690662 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1266690681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so the equivalence class of (Over 1 2) in Frac is < 1266690692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :{Over 1 2, Over 2 4, Over 3 6, ...} < 1266690692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1266690714 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so to make the rationals we do < 1266690728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(a,b) ~ (c,d) = (a*d == b*c) < 1266690736 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then use that ~ on Frac < 1266690738 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and get the rationals? < 1266690919 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so < 1266690920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data _≡_ : {a:Set} → a → a → Set where < 1266690920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : refl : {x:a} → x ≡ x < 1266690925 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is correct, then < 1266690931 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(although you'll probably bitch about the symbol I used :)) < 1266690938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i hope at least that < 1266690940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Unifiable : Set → Set < 1266690940 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Unifiable a = { < 1266690941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : _=_ : a → a → Bool < 1266690941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266690941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1266690943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is unobjectionable enough to you < 1266691054 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :ah, fried blood <3 < 1266691076 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :blech < 1266691080 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we are no longer friends < 1266691120 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266691133 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :coming up with a syntax for record types is hard < 1266691148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can have < 1266691149 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :record Unifiable : Set → Set where < 1266691149 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : _=_ : a → a → Bool < 1266691149 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266691159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but then 1. it's confusing alongside the GADT syntax < 1266691166 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :2. you never specify that a is your agument! < 1266691168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*argument < 1266691188 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :incidentally i should probably find another name for Leibniz's law rather than implying that Leibniz was literally a proof < 1266691292 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :I thought you were still on my topic and constructing proofs about blood pudding, but then I started actually reading :) < 1266691386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::DD < 1266691411 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1266691554 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you know I prefer it when MissPiggy is angry at me and tells me what i should be doing instead < 1266691579 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266691587 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess if I want < 1266691588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : _=_ : a → a → Bool < 1266691588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266691602 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :from inside something with a non-identical constructor equality thingybob that nevertheless satisfies that outside of the module < 1266691612 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then I need to actually have a notion of "modules" in the type system < 1266691617 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :as a vampire, alise does not approve of frying blood before eating < 1266691623 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that leibniz can express the privateness of it or something < 1266691631 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that we can say "outside the module, (leibniz's law)" < 1266691670 0 :olsner!unknown@unknown.invalid PRIVMSG #esoteric :oerjan: as a norwegian, do you approve? < 1266691687 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266691696 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :although i haven't had it in a long time < 1266691802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i have a feeling this thing is going to end up with me having a type-safe model of the language itself, and the logical system its type system isomorphs to, inside the language/type system < 1266691821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and making proofs by proving that it's true inside that model, and then lifting it out < 1266691823 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :xD < 1266691865 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :wouldn't that tend to risk hitting godel's theorem < 1266691886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think so, proving (P in this system) should be identical to proving P, shouldn't it? < 1266691888 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :(having a model of the whole means the whole is consistent) < 1266691894 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nope < 1266691896 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's loeb? no < 1266691898 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the model could depend on the inconsistent parts < 1266691902 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1266691970 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i mean means the whole can be proven consistent < 1266691980 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :oh well maybe not < 1266692009 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course the issue there is that you need an inconsistent system < 1266692011 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which isn't so good. < 1266692088 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm you could have x ≊ y = (reduce x) = (reduce y) < 1266692092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :except I guess you might not have = < 1266692121 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i wonder if using = for unification /and/ definition will get confusing < 1266692168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey can't you have _|_ with codata? < 1266692171 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like having co_|_ or something < 1266692180 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :prolly not < 1266692388 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :no, you always must be able to unpack one more constructor in finite time < 1266692392 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :iiuc < 1266692430 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :darn :) < 1266692477 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :but you can of course have fix Later < 1266692510 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :fakeBottom = Later fakeBottom < 1266692519 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266692523 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that's just the partiality monad < 1266692528 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266692530 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(which i think gives turing completeness right?) < 1266692544 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :well sure < 1266692549 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :problem is you have a lot of things which /are/ partial but the compiler can't infer to be so < 1266692560 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe you should be able to manually specify a halting proof < 1266692630 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266692641 0 :sshc_!~sshc@unaffiliated/sshc JOIN :#esoteric < 1266692646 0 :bsmntbombdood!unknown@unknown.invalid PRIVMSG #esoteric :why hello thar oklopol < 1266692668 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266692819 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266692835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data _≡_ : {a:Set} → a → a → Set where < 1266692835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : refl : {x:a} → x ≡ x < 1266692835 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is pretty damn awesome though < 1266692838 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why didn't I think of that < 1266692870 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I just showed you that :| < 1266692873 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i know < 1266692878 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thus "why didn't I think of that" < 1266692889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: oh ho, I've just realised why agda repeats all the fields in each iteration of more advanced set type thing < 1266692903 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it's inverted; instead of depending on the parent, it contains the parent constructed from the fields < 1266692914 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pro: you only need to instantiate the topmost one < 1266692941 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :con: if there are two ones that apply (e.g. a split in the hierarchy) you have to type some declarations as aliases for the other ones; makes the definitions of the thingies more verbose in the stdlib < 1266692970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, argh, I should really figure out quotients and carriers; both agda and epigram are all up wit dem and I don't get it yet < 1266692994 0 :oklopol!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266692995 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Each Set universe (and so far there is one, inconsistently containing itself, but later we shall have some sort of hierarchy) < 1266692997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why don't we just have < 1266693026 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set : (n:Nat) -> Setѡ < 1266693030 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where Setѡ is some other thing < 1266693033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or wait it's actually just < 1266693039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set : (n:Nat) -> Set (n+1) < 1266693046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :surely that's the simplest way < 1266693051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set 0 is * < 1266693056 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set 0 : Set 1 < 1266693057 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and so forth < 1266693140 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey, scarf is still here < 1266693160 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266693171 0 :scarf!unknown@unknown.invalid PRIVMSG #esoteric :busy helping with a community nethack game, sorry < 1266693650 0 :oklofok!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266694238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) < 1266694238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think < 1266694294 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well?? < 1266694299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well what? < 1266694305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was just writing things because I felt like it < 1266694319 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why is it into bool instead of into *? < 1266694334 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and the other thing is you have not --> forall n, P n at the end < 1266694413 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well because I like having a type that lets me express "some true or false proposition to be proved" < 1266694419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :* is needlessly general < 1266694455 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but the thing with induction into * is you can use it to prove stuff or to do recursive programs < 1266694475 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :omg really? < 1266694476 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266694480 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(re: recursive) < 1266694545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also < 1266694545 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : and the other thing is you have not --> forall n, P n at the end < 1266694547 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't see what you mean < 1266694572 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also wait, using it to write recursive programs? that means that we have a (Nat -> Set) at value-time < 1266694579 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why would such a function be useful at value-time? < 1266694598 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm... the f 0 argument should be implicit, but should the inductive step be? < 1266694637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so what value does natInduction have to be a recursive control structure? < 1266694674 0 :oklofok!unknown@unknown.invalid QUIT :Quit: ( www.nnscript.com :: NoNameScript 4.2 :: www.regroup-esports.com ) < 1266694712 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I mean < 1266694713 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) < 1266694716 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :should be < 1266694719 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat), f n) -> forall n, f n < 1266694733 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266694735 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :natInduction : (f:Nat→Bool) → f 0 → (∀(n:Nat), f n → f (succ n)) → (∀(n:Nat)) -> forall n, f n < 1266694737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...lol < 1266694742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(∀(n:Nat), f n) -> forall n, f n < 1266694752 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh nevermind, now I see it < 1266694753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(∀(n:Nat), f n) -> ∀n, f n < 1266694756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(∀(n:Nat), f n) -> ∀(n:Nat), f n < 1266694761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i have that :) < 1266694778 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if you could see how awful these unicode symbols look you might forgive me < 1266694859 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::) < 1266694866 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :natInduction : (f : Nat → Set) → f 0 → (∀(n:Nat). f n → f (succ n)) → (∀(n:Nat). f n) < 1266694866 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :natInduction _ base _ 0 = base < 1266694866 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :natInduction f base induct n = induct (natInduction f base induct (pred n)) < 1266694870 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if I'm not mistaken < 1266694878 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but I think ->Set doesn't make it nicer to use for recursion < 1266695019 0 :sshc_!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266695166 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: am I correct? < 1266695622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol I felt the urge just now for something even more general than typeclass instances < 1266695634 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :instance (tc a) => tc (Foo a) < 1266695668 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :woah what is going on there < 1266695674 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :that's weird < 1266695789 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well for instance < 1266695795 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :instance (tc a) => tc (Partial a) < 1266695797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266695802 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you need to morph the return values into Partial too < 1266695803 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266695806 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :poll time < 1266695807 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :newtype Stream a = Partial (a, Stream a) < 1266695807 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or < 1266695813 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266695814 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*type < 1266695819 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :type Stream a = Partial (a, Stream a) < 1266695820 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or < 1266695826 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :type Stream a = (a, Partial (Stream a)) < 1266695874 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I guess I prefer the former because you can return Stream a < 1266695876 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rather than Partial a < 1266695884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hd :: Stream a -> Partial a < 1266695884 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :tl :: Stream a -> Stream a < 1266695891 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the co-ness of streams is embedded in the stream itself < 1266695911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ofc you need a newtype irl < 1266696037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i was hoping MissPiggy would pop up with some semantic reason for preferring one or the other there :P < 1266696060 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah! < 1266696063 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :newtype Stream a = Stream a (Partial (Stream a)) is actually preferable < 1266696068 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you can do foo <- tl somestream < 1266696153 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1266696155 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266696157 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1266696158 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :newtype Stream a = Stream (Partial (a,Stream a)) < 1266696160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :gives you all those properties < 1266696164 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey wait, isn't that a case of Mu? < 1266696408 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1266696439 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1266696442 0 :lament!~lament@S0106001b63f462cc.vc.shawcable.net JOIN :#esoteric < 1266696474 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :f x = Partial (a, x) < 1266696476 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I guess < 1266696506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :newtype Stream a = Stream (Partial (a,Stream a)) deriving (Show) < 1266696506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :con :: a -> Stream a -> Partial (Stream a) < 1266696507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :con x xss = return $ Stream (return (x,xss)) < 1266696507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rep :: a -> Partial (Stream a) < 1266696507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rep x = do < 1266696507 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : xss <- rep x < 1266696509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : con x xss < 1266696513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rep stack overflows if you try and show it :( < 1266696517 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess partial isn't /that/ lazy < 1266696536 0 :MizardX!unknown@unknown.invalid QUIT :Ping timeout: 260 seconds < 1266696543 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :a bad case of the Mu < 1266696556 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :the Mus < 1266696636 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :Mus Musculus < 1266696676 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: here, how does Coq do records? < 1266696681 0 :lament!unknown@unknown.invalid PRIVMSG #esoteric :i played some poker and had a bad case of the lose < 1266696682 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you like Coq, you should evangelise its syntax to me < 1266696728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hey i just realised something < 1266696740 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the race :: Delay a -> Delay a -> a function given in the paper that returns the one that gets to Now first < 1266696749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is basically multitasking < 1266696755 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you could race proc1 proc2 in an OS < 1266696761 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :admittedly, not very ooh-la-la SMP, but cool < 1266696836 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise: I think records are the same as inductive types but they have named projections (and only one constructor) < 1266696866 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why not race :: Delay a -> Delay a -> Delay a ? :) < 1266696877 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't think that's how it's defined in the paper < 1266696880 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :they use omegarace to define lfp that's a pretty wild one < 1266696893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes it is < 1266696919 0 :sshc!unknown@unknown.invalid QUIT :Ping timeout: 246 seconds < 1266696920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :race :: Delay a -> Delay a -> Delay a < 1266696920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :race (Now a) _ = Now a < 1266696920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :race (Later _) (Now a) = Now a < 1266696920 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :race (Later d) (Later d') = Later (race d d') < 1266696928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: oh yeah those types < 1266696943 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://r6.ca/blog/20030729T014400Z.html < 1266696946 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :same general syntax as here? < 1266696955 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise the fun thing about Delay is you can define functions that are MORE LAZY than haskell < 1266696961 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :re delay, yes, I know < 1266696974 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my issue with coq's record syntax is that it differs too much from gadt syntax :P < 1266696988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Compose : (f:Morphism)(g:Morphism)->(Range g)=(Domain f)->Morphism < 1266696988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : rangeId : (a:Object)(Range (Id a))=a < 1266696991 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so caps denotes constructor < 1266696998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and lowercase denotes fields on all of those constructors or sth? < 1266697008 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or else how do you denote type params < 1266697009 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :;| < 1266697019 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no lower/upper distinction (thank goodness) < 1266697024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or else how do you denote type params < 1266697029 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like in < 1266697041 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Monoid = { < 1266697044 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :star : blah blah blah < 1266697048 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :assoc : blah blah blah < 1266697048 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :} < 1266697051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where's the actual monoid type < 1266697054 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the type argument a < 1266697061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or do you have it as a separate field? < 1266697067 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in which case how do you do the equivalent of (Monoid m) => ... < 1266697070 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in a type sig < 1266697221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it confuses me < 1266697234 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no such thing < 1266697249 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(unless you use the typeclasses extension which is quite new) < 1266697255 0 :Gracenotes!~person@wikipedia/Gracenotes JOIN :#esoteric < 1266697265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so how do you express the same sort of thing? < 1266697276 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :forall a. Monoid -> a -> ... isn't allowed, the a in the Monoid might not be the same a < 1266697349 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :forall a, Monoid a -> a ...? < 1266697349 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol agda has postfix ⊥ for its partiality monad < 1266697357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: from whence "Monoid a"? < 1266697369 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Coq's syntax has the things that would be parameters elsewhere as record fields < 1266697381 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Record Monoid a := mkMonoid { } < 1266697482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh, seems the agda folk name their refls type-refl < 1266697493 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so ≡-refl instead of just refl < 1266697499 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well how boring :) < 1266697531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so do you prefer "Data Foo a := { }" to the haskell/agda-esque gadt syntax? < 1266697549 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I hate records :| < 1266697570 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :the whole idea of making a 'record' separate for some arbitrary reason just makes me want to puke my guts out < 1266697583 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well in my lang it's just syntactic sugar... < 1266697600 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because naming every arg in a type sig in a constructor in a data type gets a leetle bit heavy when you're just trying to fucking define monads < 1266697741 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :private < 1266697742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : primitive < 1266697742 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : primTrustMe : {A : Set}{a b : A} → a ≡ b < 1266697744 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Agda stdlib < 1266697746 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :reassuring < 1266697762 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what does that bit of code do? < 1266697768 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah agda's weird < 1266697777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which bit of code? < 1266697781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: actually it's safe, just scarily named < 1266697782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, the bit you pasted < 1266697786 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: primTrustMe? < 1266697790 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, yep < 1266697795 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, it's used internally, to do some weird stuff to do with IO and strings.. < 1266697797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: do you know what dependent types are? < 1266697800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :propositional equality? < 1266697809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if not, just don't think about it < 1266697836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, well, I don't know the details indeed < 1266697847 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster or just ignore me and argue with elise... < 1266697852 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :eliser < 1266697856 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::OOO < 1266697861 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I just discovered the truth < 1266697862 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :eliser yewdcohski < 1266697867 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh no!! < 1266697871 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, yes, it is used internally like that < 1266697874 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that doesn't explain what it _is_ < 1266697889 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, but including "TrustMe" in a identifier in any standard library is enough to make me cautious... < 1266697896 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1266697901 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster, it's used internally, to do some weird stuff to do with IO and strings.. <-- right < 1266697938 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, and for a language used to prove things it seems just insane < 1266697948 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well see that's because you looked at the name and not the type < 1266697953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and you can't look at the type because you don't understand the type < 1266697965 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, sure, but the name is a bit of a wtf too, isn't it? < 1266697967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"oh no you can prove anything" is not even remotely what it does < 1266697969 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, thus why i pasted it < 1266697983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but inquiry beyond that involves knowledge of the stuff used within :P < 1266697986 0 :Gracenotes!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266697993 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, and is that bit wtfy too? < 1266698024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Let me just quote a snippet of Agda's stdlib for you, and you can decide whether you really want to know more about this thing. < 1266698024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :<-resp-≈ : IsEquivalence _≈_ → _≤_ Respects₂ _≈_ → _<_ Respects₂ _≈_ < 1266698025 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :<-resp-≈ eq ≤-resp-≈ = < 1266698025 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : (λ {x y' y} y'≈y x B -> C < 1266698208 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x < y = ... < 1266698211 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's only because that bit of code is very ugly < 1266698211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I just said it didn't look nice < 1266698213 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no just listen to me I am explaining < 1266698214 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because, well, it's stdlib code < 1266698225 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so that is how you define infix operators < 1266698227 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :actually _ for multifix is very elegant < 1266698233 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if_then_else_ : Bool -> a -> a -> a < 1266698235 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and you can use _<_ to denote the identifier < 1266698236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_+_ < 1266698238 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_?_:_ < 1266698243 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :instead of having to write \x y -> x < y < 1266698244 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :etc < 1266698269 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it still isn't aesthetically nice. which is all I claimed. I didn't say anything about the underlying concepts or whatever (I don't know of them) < 1266698278 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but dude, you use underscores < 1266698280 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you program IN C < 1266698287 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's only ugly in context < 1266698293 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, well I never liked identifiers beginning or ending with _ < 1266698298 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :like _exit() < 1266698299 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you're making a statement about aesthetics < 1266698302 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :based on a tiny bit of stdlib code < 1266698305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stdlib code is ugly. fact. < 1266698309 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :agda isn't < 1266698312 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, well yes it often is < 1266698326 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :/Especially/ when you're in type theory this heavy. < 1266698338 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :possibly, I can't comment upon that < 1266698357 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, but I think stdlib.i is even worse. And I read some parts of it. < 1266698371 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course that doesn't compare for various reasons < 1266698435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :The cool thing about mixfix operators is that, not only can you define if/then/else and similar things as operators, you can even define parenthesising operators: < 1266698447 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh? < 1266698448 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's really useful to define parens < 1266698458 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :<_> : a -> TotallySquareBracketed a < 1266698463 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : = WowItsSoSquare x < 1266698472 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, <_> has a huge problem with his eyes < 1266698478 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I read that as "TotallyASquareBracket" first hehe < 1266698478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: sarc or sinc? < 1266698482 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(Sarcasm or sincere, obviously.) < 1266698490 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's angle bracket too lol < 1266698494 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my ridiculous code snippet is doubly so < 1266698522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: indeed given a good enough language, bobwas_amanwith<_a_PLA,_n(_end;_4 is a valid operator < 1266698528 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because parens will just be defined as the operator (_) < 1266698530 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(x) = x < 1266698538 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :example usage of that incredibly useful operator: < 1266698549 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I think I would kick any programmer who used anything like "bobwas_amanwith<_a_PLA,_n(_end;_4" in the head < 1266698558 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :at least if I had to ever maintain that code < 1266698569 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, its one of the 'little things' which I would add to haskell to improvement < 1266698574 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :improve it < 1266698576 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :bobwas amazing amanwith< (boobs/42) a plastic PLA, (retard (2%-4)) n( (okaynowso okaynowso) end; woooh 4 < 1266698586 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :of course, anyone defining such an operator is an abject idiot. < 1266698606 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, agreed with the last comment < 1266698659 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, so _ is basically "fill in stuff when used here"? < 1266698662 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266698676 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well, in that case it is kind of neat. But around an operator it still looks rather ugly < 1266698677 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it also means that type names like [a] and (a,b,c) are no longer restricted to the bourgeois language designers < 1266698684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :[_] and (_,_,_) < 1266698694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but I guess you don't define such most of the time, rather you use them < 1266698699 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yeah it's just that that's a piece of code operating on operators, which are first-class entities in agda < 1266698710 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and it's a rather specific piece of code too < 1266698715 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thus the crazy < 1266698726 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*bourgeoisie < 1266698728 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no wait < 1266698730 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*bourgeois < 1266698731 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I don't know if having first class operators makes me puke or makes me fall in love with the language. Possibly both at once < 1266698756 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what did that code from the stdlib do though? < 1266698756 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes well mixfix + first class operators leads to some gnarly crappiness that MissPiggy understands and I don't apparently < 1266698766 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: I have no fucking clue! < 1266698782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, ah, at least we are at the same level here then ;P < 1266698967 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: < 1266698970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_=_ : a → a → Bool < 1266698971 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266698977 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously the first is equality < 1266698986 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :take a guess at what the second is (hint: it's a property of equality) < 1266698997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :after seventy-four hours (when you finally grok it) it will mow your blind < 1266699018 0 :sshc!~sshc@unaffiliated/sshc JOIN :#esoteric < 1266699038 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster -- I already explained what it does < 1266699038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, where is what = actually do defined? I mean, to me it looks like it describe the types it takes and returns < 1266699050 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes; it's actually ... well, you can think of it as an interface < 1266699072 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's the values that must be define on a type a to make that type Unifiable < 1266699084 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :leibniz, obviously, depends on = already being defined beforehand < 1266699094 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but read its type (logical statement) < 1266699105 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :note that (b:Set) can be ignored < 1266699108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's irrelevant to the gist < 1266699111 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I'm trying to remember what leibniz did to figure it out :P < 1266699122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no no, just read the type aloud < 1266699122 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alas the things I do remember about him doesn't seem relevant here < 1266699128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you don't need to know his name < 1266699132 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266699135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just ignore the (b:Set) part read the upside down a as forall < 1266699138 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: don't explain < 1266699141 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i wanna see him grok it himself < 1266699147 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise im explaining something to you :P < 1266699148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I know what upside down A is < 1266699150 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :... < 1266699153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: do it in pm < 1266699155 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :might be better written as < 1266699156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: just checking >:D < 1266699159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: PM < 1266699160 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :pm plz < 1266699163 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or you'll spoil it :P < 1266699169 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what is the x:a thing there? < 1266699176 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, what does that part do < 1266699179 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :leibniz : forall (x:a) (y:a) (b:Set) (f:a→b). x = y → f x = f y < 1266699203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well that is the same as he said isn't it? < 1266699216 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but doesn't it say that f(x)=f(y) if x=y? < 1266699265 0 :alise!unknown@unknown.invalid QUIT :Read error: No route to host < 1266699271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :assuming → is "implies" < 1266699272 0 :alise!~alise@91.105.105.37 JOIN :#esoteric < 1266699276 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :stepped on off switch < 1266699277 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in normal logic < 1266699285 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: you explained it, didn't you < 1266699287 0 :CESSQUILINEAR!unknown@unknown.invalid PART #esoteric :? < 1266699290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, read logs, bbl reading iwc < 1266699291 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :?? < 1266699301 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :i want cake < 1266699304 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nope good < 1266699314 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :12:53:36 but doesn't it say that f(x)=f(y) if x=y? < 1266699316 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes, basically < 1266699319 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyone who defines equality < 1266699327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :must provide a proof that f(x) = f(y) if x = y, by their definition < 1266699344 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so you cannot define a bunk equality definition (well, apart from anything = anything being true) < 1266699356 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but the thing is, it's just a normal type like = < 1266699359 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :there's no special "proof system" < 1266699391 0 :taxman!~chatzilla@92.4.156.98 JOIN :#esoteric < 1266699397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :taxman, a man of much to tax < 1266699418 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :heyyy < 1266699422 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hi < 1266699428 0 :taxman!unknown@unknown.invalid PRIVMSG #esoteric :Hey and hi. < 1266699431 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: so basically, it's a constraint on how you can define = < 1266699438 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :taxman: you new i presume? < 1266699441 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :welcome! now sacrifice goats. < 1266699456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I'm more used to thinking of = in terms of a relation on a set. < 1266699465 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :note: if you think, after that, that you have the wrong channel, you don't not have the right channel < 1266699476 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, here, = is a function. < 1266699478 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Just equals(a,b) < 1266699502 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Basically, any definition of the name = for a given type must also include a definition of leibinz, which must be a proof of that statement (usually it can be inferred) < 1266699509 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So it's like a constraint < 1266699550 0 :adam_d!~Adam@cpc2-acto6-0-0-cust48.brnt.cable.ntl.com JOIN :#esoteric < 1266699567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, that baffling snippet i pasted was a function manipulating relations :P < 1266699627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, sounds scary < 1266699637 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :scary, but cool < 1266699649 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :basically languages like this build up an entire logico-mathematical theory < 1266699658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and a proof system and a programming language based around them (that are the same) < 1266699663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then it's your playground < 1266699740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, yes, but the stdlib is bound to end up quite hellish < 1266699746 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in code, yes < 1266699748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in usage, beautiful < 1266699755 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well yeah that is what I meant < 1266699760 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what < 1266699770 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why the hell would the stblib not be very simple and clear? < 1266699779 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because the concepts involved are subtle and elegant < 1266699782 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I'll let alise explain it < 1266699794 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and the operations complex < 1266699803 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hellish doesn't mean it isn't simple and clear < 1266699809 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just complicated to the uninitiated < 1266699818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol I want something like leibniz for ≈ < 1266699818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like < 1266699828 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f(a) ≈ f(b) if a ≈ b < 1266699830 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that's clearly false < 1266699834 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :take e.g. a hash function < 1266699836 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so really what we need is < 1266699836 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, is ≈ almost equal here? < 1266699837 0 :lament!unknown@unknown.invalid QUIT :Ping timeout: 252 seconds < 1266699840 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266699853 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f(a) ≈ f(b) if a ≈ b and f reacts in proportion to the change of its argument < 1266699857 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, well hash function is a boring example. I was thinking along the lines of sin(1/x) around 0 < 1266699858 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and even < 1266699870 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :so im trying to learn about dependency syntax and how they characterize grammaticality in natural language < 1266699879 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f(a) ≈withTolerance(newTolerance a b) f(b) if a ≈withTolerance(x) b and f reacts in proportion to the change of its argument < 1266699883 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :and one phenomena thats especially interesting to me is called an extraction island, right < 1266699889 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or even < 1266699891 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f(a) ≈withTolerance(newTolerance f a b) f(b) if a ≈withTolerance(x) b and f reacts in proportion to the change of its argument < 1266699896 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so the new tolerance can take into account the rate of change < 1266699903 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :basically its that thign that makes parasitic gaps parasitic instead of just bad < 1266699917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, couldn't you define a class of functions where f(a) ≈ f(b) if a ≈ b is true? < 1266699926 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and then somehow attach that property to them < 1266699929 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes, that's basically what I'm doing < 1266699936 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :except the property is on ≈ < 1266699944 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. if you define approx-equal, you must show that it obeys this property < 1266699944 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :anyway, im reading through what was probably THE textbook on the subject, Dependency Syntax by Igor Mel'čuk, which argues that DS really CAN be used as a theoretical framework for describing natural language < 1266699945 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :by saying < 1266699950 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I'm not sure what is necessary and sufficient for it < 1266699950 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"f reacts in proportion to the change of its argument" < 1266699956 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm basically conjouring up the set of functions that do that < 1266699967 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, over the reals it must be continuous I think? < 1266699968 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :but this book makes no mention of extraction islands, despite being published about 20 years after they were discovered < 1266699972 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm this may be the first time calculus was used in a type system < 1266699975 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but that isn't enough < 1266699977 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :after countless others have written extensively on the topic < 1266699998 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :so i figure, yeah sure ok, maybe he was busy doing other stuff, i dont know, let me just email this guy and ask him directly < 1266700001 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :so i email him < 1266700014 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :TO THIS DAY the guy has never even HEARD of extraction islands. < 1266700023 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, augur: your nicks are the same length < 1266700027 0 :scarf!unknown@unknown.invalid NICK :scarf|away < 1266700031 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and both start on a < 1266700032 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: this is true. < 1266700034 0 :scarf|away!unknown@unknown.invalid NICK :scarf < 1266700037 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I have problems following what is going on < 1266700038 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah but he's annoying. and I'm not! < 1266700040 0 :scarf!unknown@unknown.invalid NICK :scarf|away < 1266700040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wb scarf < 1266700043 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :scarf|away: bye < 1266700050 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh client issues I suspect < 1266700056 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :which means we will have this for some time < 1266700057 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a brief stay. like life < 1266700061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :until he notices it < 1266700069 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: no, he probably just returned to his terminal which set his irc client off < 1266700071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and then he fixed it < 1266700075 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, hm maybe < 1266700076 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :presumably he's busy and just popped back < 1266700078 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that's another possibility < 1266700087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :augur: he's never heard of something so prominent? < 1266700090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the fool! < 1266700091 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :how the fuck can you claim that something is a viable theoretical apparatus if you dont even know about some big fucking phenomena, nevermind have an account of it < 1266700093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(in his field) < 1266700096 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i dont get it < 1266700109 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :discontinue any interest you have in his work < 1266700117 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, anyway what is required for f(a) ≈ f(b) if a ≈ b to hold? < 1266700136 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, if you figure out what properties is required of the function I will be interested < 1266700137 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :i really should, alise. but he offered to look at some sentences and try to characterize their dependency structure < 1266700150 0 :augur!unknown@unknown.invalid PRIVMSG #esoteric :so ive sent him some examples to see if he has any observations to make < 1266700153 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: f(x)'s change is proportionate to x's change < 1266700166 0 :lament!~lament@S0106001b63f462cc.vc.shawcable.net JOIN :#esoteric < 1266700168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, hm what about |x|? < 1266700169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :apart from that, that's it, I think < 1266700191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, that's acceptable given enough tolerance in the ≈ you use for f(a)/f(b) < 1266700199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : f(a) ≈withTolerance(newTolerance f a b) f(b) if a ≈withTolerance(x) b and f reacts in proportion to the change of its argument < 1266700199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : so the new tolerance can take into account the rate of change < 1266700207 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :is, I think, the definition you need < 1266700208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :plus calculus < 1266700232 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm < 1266700252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what about sin(1/x) < 1266700262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I would say it isn't true around 0 < 1266700276 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :IRSSI is being bugger... < 1266700280 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :bugged* < 1266700287 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no news there < 1266700295 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well it always goes in the same sort of way, right? < 1266700300 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's just that the change gets more drastic < 1266700321 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all that means is that you have to make (newTolerance (\x -> sin(1/x)) a b) be a very high tolerance for small a and b < 1266700340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i think this property is so weak as to be almost useless, though < 1266700346 0 :tombom!~tombom@wikipedia/Tombomp JOIN :#esoteric < 1266700350 0 :scarf|away!unknown@unknown.invalid NICK :scarf < 1266700352 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, you know lim_{x→0} sin(1/x) is undefined right? < 1266700390 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(as well as it being undefined in the point 0) < 1266700404 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(due to div by zero) < 1266700408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes, and? < 1266700419 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also sin 0 wouldn't type in my lang :P < 1266700428 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, err? < 1266700432 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sin 0 is perfectly ok < 1266700435 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266700438 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I mean sin(1/0) ofc < 1266700444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well right < 1266700451 0 :oklopol!~oklopol@a91-153-117-208.elisa-laajakaista.fi JOIN :#esoteric < 1266700456 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what if the value 0 is from runtime? < 1266700462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or do you do type checking there as well < 1266700468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :neither < 1266700474 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is why dependent langs are proof systems as well < 1266700483 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, you require testing that it isn't 0 before? < 1266700489 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :before dividing* < 1266700491 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you have to assure the language mostly the compiler can do this for you that it isn't 0 < 1266700493 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, that's one way < 1266700529 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, you have no exception handling or such I assume? < 1266700531 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1266700537 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :throw/try_catch < 1266700541 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or whatever < 1266700547 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No reason why not, as long as throw doesn't return just "a" but "Throw a" or "IO a" or whatever < 1266700563 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's a full-blooded language, define what you want as long as it halts. If it might not or doesn't halt, put it in the partiality monad and you can still define it. < 1266700573 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, why must it halt? < 1266700578 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266700579 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'd point you to http://strictlypositive.org/slicing-jpgs/ and http://strictlypositive.org/winging-jpgs/ to understand conditions on worlds and stuff in a dependent language, but they're kinda heavy even if you know Haskell inside out < 1266700580 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266700581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :now I see < 1266700588 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: because otherwise your proof for everything could be for(;;); < 1266700604 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that can be any type you want, but it never yields a value and it certainly isn't a coherent proof of anything! < 1266700608 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I missed the bit about "partiality monad" but then it makes perfect sense < 1266700622 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, so it will be total fp basically? < 1266700627 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ACTION remembers reading about that < 1266700632 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :with data and co-data < 1266700632 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, ⊥ — our name for non-termination/error/all kinds of "non-value" — is insidious— oh, you've read the paper < 1266700636 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then yes, it's total < 1266700648 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just like every other dependent language that doesn't want to melt down horribly in nonsense :) < 1266700660 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the language in Total FP isn't tc though iirc < 1266700668 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with a partiality monad in a good dependent lang you get turing completeness < 1266700674 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, and yes I understood the ideas of that paper. Possibly not the language used (wasn't it some custom made variation of miranda or something?) < 1266700687 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a blend of miranda and haskell and stuff < 1266700689 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266700691 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it wasn't really a full language < 1266700692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just pseudocode < 1266700694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :true < 1266700704 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well I understood the ideas, that was the main thing < 1266700717 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266700723 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all this stuff is pretty sexy, it's a sweet spot in programming languages < 1266700732 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, anyway, how often would you actually need such a partiality monad? < 1266700732 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because it hasn't really been explored out of the fringe < 1266700743 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and just adding dependent types gives you like billions of things for free < 1266700746 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :didn't the paper conclude that for a lot of purposes you didn't need tc < 1266700754 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's amazingly good bang for your (admittedly large) buck < 1266700761 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I think total fp is pretty daft... < 1266700767 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: then why do you use Coq < 1266700768 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it is total < 1266700776 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe you just mean the paper < 1266700781 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: anyway the paper isn't all /that/ good < 1266700787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :prolly why it was rejected < 1266700787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but < 1266700791 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266700792 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the partiality monad shouldn't be needed so much < 1266700801 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes but I don't use it because it is total (I mean, it MUST be total for all the good bits to apply) < 1266700801 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :didn't remember that about rejection < 1266700804 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can express ackermann and all without it, you're not really very limited < 1266700816 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously the type of the main program is, well < 1266700818 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why is the input cursor now gone?? < 1266700819 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :argh < 1266700819 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :just being total for the sake of being total seems a bit pointless < 1266700820 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :brb < 1266700821 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Partial (IO ()) < 1266700856 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right restarted some stuff < 1266700873 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(as opposed to left restarted, or if you prefer that: missing comma) < 1266700903 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so, where were we? < 1266700917 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, ^ < 1266700957 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :since I lost scrollback there < 1266700976 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a < 1266700978 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I believe < 1266700979 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: < 1266700983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : you can express ackermann and all without it, you're not really very limited < 1266700983 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : obviously the type of the main program is, well < 1266700984 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : Partial (IO ()) < 1266700991 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah missed that last line < 1266700996 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because otherwise you could never evaluate a Partial expression, as obviously Partial a -> a isn't expressable < 1266701000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because the whole point is that it's non-total < 1266701002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :inside that monad < 1266701005 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. partiality is an effect < 1266701010 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, could you do an infinite server loop? < 1266701011 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :without it < 1266701020 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Sure, use codata to create an infinite IO structure < 1266701028 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But you'd write the core of the server detached from IO stuff. < 1266701028 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266701037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Of course, if IO wasn't codata... < 1266701038 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, well that is common practise anyway < 1266701038 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Then no. < 1266701040 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in all good languages < 1266701046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But the Partial contains one IO, not a stream of them. < 1266701061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So if IO is data, not codata, you... well, you could infiniloop, but only because IO is useless without it. < 1266701062 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But whatever. < 1266701071 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway: < 1266701082 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :HASKELL: < 1266701087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(/) :: (Fractional a) => a -> a -> a < 1266701090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MY LANGUAGE: < 1266701093 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :_/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a < 1266701100 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I think it's obvious which will be more popular (it's mine). < 1266701109 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :_/_ : ∀a, {Field a} → {Unifiable a} → {n ≠ 0} → (n:a) → a → a <-- huh? I see it says that you can't do division by zero, but where does n come from? < 1266701122 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(n:a) → b means < 1266701128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :n is the value of the argument at that position < 1266701134 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even though we don't know the value until runtime < 1266701137 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, looks like the wrong order to put stuff in < 1266701138 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :we can use it in types < 1266701138 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1266701140 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's Complicated. < 1266701147 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: x : a means x is of type a < 1266701150 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it is not complicated!!! < 1266701151 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, shouldn't definition come before use < 1266701154 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if you reverse it that declaration would be written as < 1266701154 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that is what I meant < 1266701155 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, backwards binding < 1266701159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's no declaration < 1266701163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, yes, that disturbs me somewhat < 1266701167 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: it's just another argument < 1266701172 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :{...} just means "infer the value of this argument" < 1266701180 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and having all your constraints < 1266701181 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like < 1266701184 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a must be a Field and Unifiable < 1266701187 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and n must not be 0 < 1266701191 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :before the rest of the type, is cleaner < 1266701199 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, err, I have it the wrong way round < 1266701204 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, but does it return of the same type as the input arguments? < 1266701206 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it stops you dividing zero by something else instead X-D < 1266701208 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :is that really correct < 1266701217 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Sure < 1266701223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, if so 2/3 would be integer division? < 1266701226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :2/3 is just (2/1)/(3/1) < 1266701233 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was quick < 1266701239 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :taking my example so fast ;P < 1266701242 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :No, 2 is of type ... lemme think < 1266701250 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :∀a, {Whatever a} → a < 1266701257 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, err? < 1266701260 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes it totally will be called Whatever, shut up < 1266701271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I don't get it. what does whatever do there < 1266701271 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x/y is only defined if we have a proof of y [#] 0. < 1266701277 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Definition cf_div (F : CField) (x y : F) y_ : F := x[*]f_rcpcl y y_. < 1266701280 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well, 2 = succ (succ 0), so wherever succ is, that's what whatever will be < 1266701290 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, what about limits then? < 1266701292 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :Record CField : Type := < 1266701292 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : {cf_crr :> CRing; < 1266701292 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : cf_rcpcl : forall x : cf_crr, x [#] 0 -> cf_crr; < 1266701294 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric : ... < 1266701311 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :[#] means 'apart' i.e. not equal but more constructive < 1266701325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :constructive my ass < 1266701326 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://c-corn.cs.ru.nl/documentation/toc.html < 1266701332 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nothing wrong with a good refly frolick < 1266701350 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it is more constructive to prove things are apart that prove the negation of equality < 1266701361 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :define apart? < 1266701372 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it would have a different definition for each sort of type < 1266701379 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but there are some axioms for it < 1266701391 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it will be cool to model classical logic in my type system and then prove that clasically, p or not p < 1266701393 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : AnMaster: well, 2 = succ (succ 0), so wherever succ is, that's what whatever will be <-- since oerjan seems to be inactive: "that succs" < 1266701393 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*classically < 1266701397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :really cool < 1266701435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hey, where are the groans? < 1266701493 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: hey do we have the axiom of choice for types? < 1266701494 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that would be fun < 1266701498 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i guess so < 1266701513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also I still don't get what apartness is :) < 1266701522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :why is that axiom considered somewhat problematic btw? < 1266701522 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also it kinda sucks to have a different operation for what's essentially the opposite of another op :( < 1266701529 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :apartness it a constructive proof that things are not equal < 1266701539 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so it has more information in it than simply ~ x = y < 1266701543 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I know why it is required, but I don't know why it seems to be avoided < 1266701547 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: http://en.wikipedia.org/wiki/Banach%E2%80%93Tarski_paradox < 1266701566 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :russell o'connor had a nice post about the AoC < 1266701568 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lemme find it < 1266701584 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, ah that, I think iwc did a huge annotation on it < 1266701596 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :during mythbuster theme < 1266701609 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the strip was about needing 5 not 4 sections or such iirc < 1266701624 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://r6.ca/blog/20050604T143800Z.html < 1266701640 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the Axiom of Choice has two parts basically < 1266701644 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and one is uber smexy < 1266701666 0 :oerjan!unknown@unknown.invalid PRIVMSG #esoteric :i'm not inactive. just backlogged. < 1266701681 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy will hate it because it gets rid of quotient types apparently :D < 1266701853 0 :cheater2!~cheater@ip-80-226-235-101.vodafone-net.de JOIN :#esoteric < 1266701885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I like how he links to a proof of the axiom of choice, too < 1266701890 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in Coq < 1266701891 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"DON'T DOUBT ME, BITCH" < 1266701934 0 :cheater4!unknown@unknown.invalid QUIT :Ping timeout: 245 seconds < 1266701948 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : in Coq <-- as a data: url too! < 1266701959 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it seems < 1266701962 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if it is the first one < 1266701971 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION <3 data urls < 1266701971 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266701974 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :sooooooooooooo much < 1266701981 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, seems a bit strange for this case < 1266701998 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :he does it a lot to basically do "footnotes"w < 1266702000 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*"footnotes" < 1266702004 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, at least twice in his blog < 1266702033 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :imagine if we all were using turing machines. Every link would be a data: uri plus quining. < 1266702078 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So if we define that %!! means "this entire data URI", escapable by the usual means (i.e. using %), then every link would contain not only the contents of the page it links to, but the contents of the pages that page links to, etc, only using quining when a link back to the page linked to is encountered. < 1266702087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh, %?? would be "this page", to avoid more quining issues < 1266702103 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so every time you link to a page you store a complete snapshot of the web :) < 1266702120 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266702124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the web reachable from the page you link to < 1266702127 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is probably an awful lot < 1266702148 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, hm the bandwidth :D < 1266702165 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Infinite, naturally. < 1266702183 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, and 0 latency? < 1266702200 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Latency is irrelevant so long as it is under, say, a few days. < 1266702211 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I should make an effort to understand that proof :| < 1266702217 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the banach tarski paradox is not a paradox, grrrr < 1266702220 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, why? < 1266702220 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(the external link) < 1266702221 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :After all, loading the Google homepage (which would contain all the possible results and the algorithm for looking up the results) would download most of the web that matters. < 1266702236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So it'd be a one-time cost apart from really obscure stuff. < 1266702244 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Because remember, the possible results include the links to pages there, etc. < 1266702252 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, err, what about checking weather for tomorrow < 1266702256 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So basically, caching the Google page caches every page on Google or reachable from a page on Google. < 1266702261 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it would be annoying if you got that page only 2 days after < 1266702262 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266702270 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Well, obviously, the web is immutable like this; we'd need some special service for pushing us updates to certain pages. < 1266702280 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Presumably by creating new pages, since there is no "page identifier" other than the page itself. < 1266702301 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :sure < 1266702305 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Admittedly the latency would have to be non-ridiculous for that. < 1266702311 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yep < 1266702346 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, why not create all possible web pages instead? < 1266702366 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(I suspect this is non-computable and/or uncountable) < 1266702386 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :3 times he's used link-footnotes on his blog < 1266702392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: Uh, it's countable. < 1266702401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, they could have any length < 1266702405 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :A string is isomorphic to a natural number. < 1266702409 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and link to any other < 1266702427 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :0 = "", 1 = "\0", 2 = "\1", ..., 255 = "\255", 256 = "\0\0", 257 = "\0\1", ... < 1266702433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :so the entire web would be a set of infinitly long strings < 1266702435 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :no? < 1266702445 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and thus there would always be one in between < 1266702450 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Uhh... < 1266702457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://r6.ca/blog/20040616T005300Z.html another good post < 1266702461 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, thus we basically have cantor's diagonally thingy < 1266702469 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err not that one < 1266702477 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :the one that proves you can't count the reals < 1266702479 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :cantorsDiagonallyThingy : ... < 1266702480 0 :scarf!unknown@unknown.invalid NICK :scarf|away < 1266702485 0 :scarf|away!unknown@unknown.invalid NICK :scarf < 1266702493 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh yeah it's the diagonal one < 1266702508 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was confusing it with the one that proved you *could* count the rationals < 1266702565 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ALL THIS STUFF IS SO FUCKING INTERESTING! FUCKING FUCK FUCKSHI!!!! < 1266702567 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*FUCKSHIT < 1266702576 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I am not being sarcastic < 1266702578 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :fuck yes < 1266702581 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway I maintain that the set of all possible pages including all possible linked pages as data urls is uncountable < 1266702603 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :due to what I described above < 1266702609 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Perhaps. < 1266702648 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, basically we could always insert a page that sorts in between two given ones < 1266702658 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :god modelling classical logic in constructivist logic will be awesomely awesome < 1266702672 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the set of all possible finite pages is obviously countable < 1266702719 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : subst : {A : Set}(C : A → Set){x y : A} → x == y → C x → C y < 1266702720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266702722 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, well, you could always insert one that sorts in between, couldn't you? it would still be finite < 1266702727 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is equiv to f(x) = f(y) if x = y isn't it < 1266702730 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :but slightly longer than those < 1266702731 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :except more constructivismism < 1266702734 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(misspiggy?) < 1266702739 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :one that sorts? < 1266702772 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise prove symmetry (i.e. x = y -> y = x) using subst < 1266702799 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you can't do that with f(x) = f(y) if x = y either can you < 1266702803 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or do you mean subst is greater than that? < 1266702812 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, anyway describe the proof for why " the set of all possible finite pages is obviously countable" < 1266702837 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it isn't obvious to me, in fact it looks like the reverse < 1266702842 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :with f(x) = f(y) if x = y, it's `equals(y,x) = equals(y,y) if x = y` < 1266702850 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: base 257 numbers < 1266702853 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since equals(y,y) is true, equals(y,x) must be true < 1266702859 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :since that's y = x, we have shown that y = x if x = y < 1266702865 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :that doesn't look possible with subst < 1266702874 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: so leibniz's law is greater, then, I assume < 1266702875 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, 257? < 1266702883 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait no < 1266702884 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :subst IS liebniz < 1266702888 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :let C be - yeah < 1266702898 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yeah so you don't get the problem of initial zeroes < 1266702911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: it's just that i would have written it as C x = C y < 1266702915 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :rather than implying both < 1266702917 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :mine seems to be more general < 1266702926 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :C doesn't have to return Set, just something equalisibleirel < 1266702934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :they're equivalent but still < 1266702938 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I'm just wondering which is "better" < 1266702941 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, you can't sort them based on bytes from the start in a well defined order though. Hm you are right < 1266703003 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I was like anchoring them at the start rather than placing them in numerical order (strcmp() as opposed to < or > on bignums basically) < 1266703024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well this is the most irritating dilemma ever < 1266703031 0 :taxman!unknown@unknown.invalid QUIT :Quit: ChatZilla 0.9.86 [Firefox 3.5.7/20091221164558] < 1266703036 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, but remember they do contain all linked pages as data uris < 1266703039 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise state them both < 1266703045 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :hm doesn't change things < 1266703064 0 :tombom_!~tombom@wikipedia/Tombomp JOIN :#esoteric < 1266703075 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: but they're identical < 1266703104 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: well are they still finite? < 1266703105 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :state them :[ < 1266703114 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :the pages + data uri lists < 1266703128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :12:49:31 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266703128 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :12:52:12 leibniz : ∀(b:Set) (f:a→b) (x:a) (y:a). x = y → f x = f y < 1266703132 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :how do these two differ < 1266703139 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :o_o < 1266703144 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, possibly it links to something that include everything else. But I think alise said that should be represented as "same page" to handle the loops < 1266703145 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sorry, tunes fucked up the unicode < 1266703153 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thus they would be finite I think < 1266703159 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise no no no < 1266703161 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :so there are infinite pages? < 1266703161 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if they were to include themselves literally < 1266703163 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of course not < 1266703167 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: ??? < 1266703168 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, err what? < 1266703169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :talking to you is so confusing < 1266703176 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :"AnMaster: oklopol, possibly it links to something that include everything else." < 1266703192 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, "But I think alise said that should be represented as "same page" to handle the loops" < 1266703196 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, on the same line < 1266703199 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1266703201 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise I meant to say put x and y before everything else, for partial application < 1266703203 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :you use an escape < 1266703208 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266703211 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :to indicate it links to the page it is in < 1266703217 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :still < 1266703218 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait < 1266703221 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that wouldn't work alise < 1266703227 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :why nawt? < 1266703229 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh AnMaster < 1266703232 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thought you were MissPiggy < 1266703236 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. talking about non-boring things < 1266703238 0 :tombom!unknown@unknown.invalid QUIT :Ping timeout: 265 seconds < 1266703245 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, you could have loops of pages that aren't using the top page < 1266703254 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes which is why in a data: uri you have %!! < 1266703255 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to mean "this uri" < 1266703256 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :thus couldn't indicate "this page" < 1266703265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :%?? means this page, i.e. the page containing the link to that uri < 1266703265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :subst : ∀(x:a) (y:a) (f:a→Set), x ≡ y → f x → f y < 1266703265 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :leibniz : ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y < 1266703268 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: stated. < 1266703271 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :it might be nested hm < 1266703286 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously they both are equivalent; leibniz is more lenient/general, except not < 1266703288 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: what the fuck does it matter what it links to < 1266703293 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no wait it is < 1266703294 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266703298 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm < 1266703307 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :subst may be "easier" to prove because it does not involve f x ≡ f y < 1266703308 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, if it was to literally include the whole page recursively you would get infinite pages < 1266703313 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which could be very iffy for arbitrary f < 1266703316 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that was my point < 1266703325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: whereas f x → f y intuitively seems easier to prove, no? < 1266703331 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :in fact < 1266703359 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :a page would then contain infinite data urls in the middle < 1266703364 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :(possibly) < 1266703373 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: yes, good point, if there are infinite pages, then my argument about finite pages doesn't apply. < 1266703384 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, is it still countable though? < 1266703387 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I doubt it < 1266703388 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oklopol: you're so sarcastic :) < 1266703408 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: well this is some thrilling conversation here :P < 1266703612 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: if you have infinite pages, then there can obviously be uncountably many < 1266703621 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :f:a→Set is better < 1266703635 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and it should be called leibniz, whereas f:a -> b should be called subst < 1266703653 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, indeed < 1266703670 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: why is f:a->Set better? < 1266703690 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, I'm only going to define one; the other can be inferred from it with no code, I believe < 1266703695 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait, no < 1266703722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f x → f y means "you can transform a value of type (the result of (f x)) into a value of type (the result of (f y))" < 1266703729 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which _doesn't_ mean that f x and f y are the same < 1266703734 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, try and prove them both < 1266703737 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait, yes it does, since f can be any such function < 1266703749 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: heh ok, i'm a bit of a proof retard though < 1266703750 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it will only go one direction < 1266703760 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i hope you don't mean a checked proof :( < 1266703766 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :of course I do! < 1266703770 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i only know the programming side of /existing/ dependent languages though! < 1266703780 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :nah it doesn't matter if it's checked < 1266703842 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION needs to read On Denoting at some point < 1266703975 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :heh i think i may be retarded, proving ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y is causing my brain to go ⊥ < 1266703988 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm either intelligent or really stupid never in-between < 1266704002 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266704006 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : refl : {x:a} → x ≡ x < 1266704061 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : heh i think i may be retarded, proving ∀(x:a) (y:a) (b:Set) (f:a→b), x ≡ y → f x ≡ f y is causing my brain to go ⊥ <-- what axioms do you have available for this? < 1266704073 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :your standard dependently-typed constructivist type theory < 1266704114 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I don't know what those are. But the proof is trivial for pure functions over a set with the = operator < 1266704124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm proving it from < 1266704125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data _≡_ : {a:Set} → a → a → Set where < 1266704125 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : refl : {x:a} → x ≡ x < 1266704128 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :refl (f x) : f x = f x < 1266704128 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in, it follows from definition of ? < 1266704130 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1266704131 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :of = < 1266704146 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so how can you turn f x = f x into f x = f y :P < 1266704155 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(using "subst" which should actually be called leibniz) < 1266704156 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :if x = y then they are identifical < 1266704164 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :identical* < 1266704169 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yeah exactly < 1266704176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :hmm so wait < 1266704196 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the proof of leibniz (which should be call subst, the f(x)=f(y) version) involves subst (the f(x)->f(y) version)? < 1266704205 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :if so, then I /definitely/ want subst, as it is "more fundamental" in a sense < 1266704206 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, thus it follows that you can write x as y. and thus f x = f y can be rewritten to f y = f y < 1266704219 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, seems pretty trivial to me < 1266704224 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well basically I need to prove that if the normal forms of two values are equal they're indistinguishable < 1266704230 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i don't think that's axiomatic though < 1266704253 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, sounds like the same as what I did basically? < 1266704260 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266704262 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :no. < 1266704264 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I took it axiomatic rather < 1266704279 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well that's trivial then < 1266704291 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, but I thought that was by definition so < 1266704315 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/834672.txt?key=ehlammleckrtzlp63rlxsw < 1266704324 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't think MissPiggy would give me such a trivial task, though. < 1266704344 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :actually that desugaring isn't quite right, it's {} in the foralled things < 1266704345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but that's equivalent < 1266704363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : the proof of leibniz (which should be call subst, the f(x)=f(y) version) involves subst (the f(x)->f(y) version)? < 1266704363 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if so, then I /definitely/ want subst, as it is "more fundamental" in a sense < 1266704365 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: < 1266704380 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise that paste is not right < 1266704389 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yeah i know < 1266704393 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was just playing by AnMaster's rules < 1266704399 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or do you mean i made an actual error < 1266704402 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :in which case my brain really is off today < 1266704411 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wel you just repeated the question then went QED < 1266704412 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::D < 1266704412 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, well without that axiom I'm quite confused as how to prove it < 1266704420 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: exactly < 1266704423 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: duh that's why it's hard < 1266704439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you have to prove that (f x ≡ f y) → ⊥ < 1266704447 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. it is impossible to construct a value of type (f x ≡ f y) < 1266704451 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, exactly, but I wasn't aware of that it was not considered axiom/definition < 1266704457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was responding to < 1266704457 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : alise, well without that axiom I'm quite confused as how to prove it < 1266704469 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway MissPiggy i don't want to prove it i want you to answer my question :) < 1266704471 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : the proof of leibniz (which should be call subst, the f(x)=f(y) version) involves subst (the f(x)->f(y) version)? < 1266704471 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : if so, then I /definitely/ want subst, as it is "more fundamental" in a sense < 1266704471 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric ::P < 1266704663 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ACTION whacks MissPiggy < 1266704679 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :hey I am writing something for you < 1266704682 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :stop attacking me! < 1266704684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh okay < 1266704692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i was just making scientific inqierie < 1266704694 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, possible answer (but certainly incorrect): "because it is call by value" < 1266704695 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266704703 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: that still isn't a proof < 1266704710 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you don't understand what a proof is :) < 1266704711 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I said it was incorrect duh < 1266704716 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, it was a joke < 1266704720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :even if it was call by value < 1266704722 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it wouldn't be a proof < 1266704723 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/834684.txt < 1266704734 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, exactly. all math is < 1266704740 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :well < 1266704742 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :almost all < 1266704742 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise a proof is a term in the language! which will typecheck < 1266704744 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :all math is what? < 1266704748 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :call by value? bullshit < 1266704753 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i know _that_ < 1266704774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, I did correct it... < 1266704775 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay, so leibniz > subst < 1266704788 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait MissPiggy you're giving me homework! < 1266704790 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :>:| < 1266704792 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes :P < 1266704800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway i have no dependent language installed so i can't prove it < 1266704800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :nyah < 1266704811 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you are not supposed to use a type theory just do it by hand < 1266704818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay lamer :P < 1266704830 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ugh i have to rewrite your fucking lame syntax in sane syntax :| < 1266704837 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe I'll refuse to < 1266704843 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also, why P instead of p < 1266704846 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's a variable < 1266704847 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well I want to see how you rewrite it because I don'\t know what's bad about that syntax < 1266704854 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :there is no lower/uppercase distinction < 1266704857 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :(which is a good thing) < 1266704867 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266704869 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but convention < 1266704876 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :also you can't use (T:*); this is /inside/ Unifiable < 1266704881 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er wait no < 1266704888 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :er wait yes < 1266704892 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i've been using \equiv all along lol < 1266704893 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :when I really mean = < 1266704911 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: I cannot prove what you put there; = is in Unifiable and is defined by the implementer. The proof will differ for each type. < 1266704921 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Do you mean for Unifiable, i.e. ≡? < 1266704934 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i.e. the refl thing < 1266704935 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :erm < 1266704937 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Do you mean for not Unifiable, i.e. ≡? < 1266704940 0 :augur!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266704941 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, you can replace = with any 2-ary relation, the definition doesn't matter < 1266704942 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I assume you do, otherwise I cannot help < 1266704946 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: can't < 1266704953 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because the proof differs for each definition of = in Unifiable < 1266704958 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no it doesn't < 1266704960 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so I'll assume equiv < 1266704963 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yes, it does < 1266704965 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric ::| < 1266704970 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because the definition of = differs < 1266704973 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266704974 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the proof using = must differ too < 1266705029 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway do you want \equiv i.e. same normal form < 1266705037 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or = i.e. defined depending on the type < 1266705046 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(since we have unifiable = (t,=,leibniz)) < 1266705051 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :choose < 1266705075 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, listen to me :( < 1266705083 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :If the former is acceptable I would prefer it, for I do not need to include records in the type. < 1266705086 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is the former acceptable? < 1266705087 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes or no. < 1266705087 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :if you replace all occurecense of x = y with R x y < 1266705090 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Yes, I know. < 1266705092 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :and f x = f y with R (f x) (f y) < 1266705092 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is the former acceptable? < 1266705095 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :then you can still do the proof < 1266705098 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is the former acceptable? < 1266705112 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :geez you really dont understand what 'listen to me' means < 1266705115 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I do. < 1266705124 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I understand what you said. < 1266705135 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :However, I will continue to ask the question until I am absolutely certain what I am going to do what you want. < 1266705145 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :what question < 1266705156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :leibniz : ∀(a:*) (x:a) (y:a), (p:a→*) → x ≡ y → p x → p y < 1266705159 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :where < 1266705161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data _≡_ : {a:Set} → a → a → Set where < 1266705161 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : refl : {x:a} → x ≡ x < 1266705172 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Now, I am not proving leibniz; correct? I am proving leibniz implies subst. < 1266705179 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266705180 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Is this, then, acceptable? < 1266705180 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"leibniz impiles subst (prove this)" < 1266705181 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, but does that really hold for any R? < 1266705183 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Good < 1266705187 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, and any function? < 1266705216 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :any relation R which has reflexivity < 1266705223 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :ah < 1266705295 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, but if we set R to be =< and define f x to be a hash function it doesn't seem to hold < 1266705307 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :and =< is reflexive < 1266705320 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :"it doesn't hold"? what is it? < 1266705354 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :that x =< y implies md5(x) =< md5(y) for example < 1266705368 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, since =< *is* reflexive < 1266705382 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster, forget about proving subst or proving liebniz, < 1266705392 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :we are thinking about proving subst -> leibniz, or leibniz -> subst < 1266705401 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, hm right < 1266705430 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you are right that with R as =< it you can't construct subst, but that is not really an issue < 1266705466 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, so you need more than just reflexive. I think you need symmetric too < 1266705473 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :probably transitive as well < 1266705474 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what's the tex for the or symbol again? < 1266705494 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, \cup ? < 1266705498 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: you can prove symmetry and transitivity from leibniz! < 1266705500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :thanks < 1266705522 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or maybe it is \vee < 1266705523 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :forgot < 1266705536 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, hm okay < 1266705708 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: lol well I thought I'd proved it < 1266705712 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but I'd actually proved < 1266705713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : ∀(a:*) (x:a) (y:a) (b:*) (f:a→b), < 1266705713 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : x ≡ y → (f y ≡ f x) → (f x ≡ f y) < 1266705720 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :sec, I believe I have the basic technique right < 1266705750 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise yes! < 1266705758 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes what? < 1266705759 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oh wait < 1266705760 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no! < 1266705761 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :sorry < 1266705762 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :indeed :P < 1266705766 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I thought you did it too < 1266705770 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, you proved commutativity of equal :D < 1266705773 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i'm close though < 1266705774 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :or what? < 1266705777 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: not equality; equivalence < 1266705780 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :right < 1266705787 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :given ∀(a:*) (x:a) (y:a) (p:a→*), x ≡ y → p x → p y < 1266705797 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol you know < 1266705800 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I've had a journey with equality < 1266705810 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :first I used shitty languages that only had one or two equality operators and shit sucked < 1266705828 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :eh < 1266705831 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then I used Scheme; it had a multitude of equality operators defining every type of equality given mutable pointers < 1266705837 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I thought dayum, this language sum rigorous bitch < 1266705850 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :then I used Haskell: lo, for it only had one equality, by removing that hideous wretch of mutability and pointers. < 1266705854 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh I get what you are talking about now < 1266705864 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I thought: lo, this bitch did remove sum complexity with it's purity; dayum. < 1266705885 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Now, I use dependent languages; they have every type of mathematical equality, equivalence under reduction, and ponies. < 1266705900 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :And I think: Dayum, I sure am glad I'm messing with this instead of doing actual real work. < 1266705905 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, yeah all those equal variants in scheme annoyed me < 1266705906 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in < 1266705912 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :I could never remember which one I wanted < 1266705914 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :haha < 1266705924 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*its purity < 1266705928 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(after haskell line) < 1266705946 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :okay so what i need to do is basically give a suitable p < 1266705959 0 :augur_!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266705962 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so that (p x -> p y) means the same thing as (f x === f y) < 1266705981 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well i can't connect the xs and ys on each side, so i will have to do it for both x and y redundantly < 1266705992 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :however, p x must not be the actual statement that f x ≡ f y < 1266705996 0 :augur!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266705997 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :otherwise, I have merely a tautology < 1266706024 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :got it < 1266706029 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: will this be on the exam? < 1266706035 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :oklopol, certainly < 1266706042 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :oh shit this gunna be long night < 1266706047 0 :oklopol!unknown@unknown.invalid PRIVMSG #esoteric :sleep -> < 1266706078 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy, what exam? < 1266706090 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :oh wait it was a joke right? < 1266706094 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :anyway, night too < 1266706137 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow I have proved that leibniz implies subst. < 1266706156 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I now must show why ~(subst -> leibniz), correct? After you make sure my proof is correct. Miss P. < 1266706164 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266706170 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :don't prove ~(subst -> leibniz) < 1266706176 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Probably I made some trivial error as I often do. < 1266706177 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :just explain why subst doesn't imply leibniz < 1266706178 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: not prove; just explain why < 1266706182 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266706184 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266706189 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ut yeah, check http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow is to your satisfaction < 1266706219 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :True/False are assumed to be of type *, < 1266706220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and we are assumed to have ∩ doing the obvious thing on True < 1266706220 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and False. < 1266706223 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is not needed in the actual proof < 1266706226 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :just debris from a previous version < 1266706231 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise, almost.. < 1266706241 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :subst {a} {x} {y} {b} {f} e = leibniz {a} {x} {y} {λz → f x ≡ f z} e _ < 1266706247 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :shouldn't that _ be (refl (f x))? < 1266706278 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric : MissPiggy: http://pastie.org/834705.txt?key=3zp9sv7t9v12drxuyy7ow I have proved that leibniz implies subst. <-- reminds me of Knuth's programming style somehow < 1266706282 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well i read that agda implements implicit arguments as syntactic sugar by replacing them with _ < 1266706284 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is where the real magic is < 1266706291 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh < 1266706295 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because _ is letting the compiler prove it < 1266706296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which is cheating < 1266706296 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :right? < 1266706327 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :well I mean why not just write subst {a} {x} {y} {b} {f} e = < 1266706327 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: How? Knuth is a literate C man. < 1266706332 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :subst {a} {x} {y} {b} {f} e = < 1266706334 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :wugh!! < 1266706335 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :subst {a} {x} {y} {b} {f} e = _ < 1266706337 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, the literate bit is what I meant < 1266706338 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :why not just that ^ ;P < 1266706340 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yeah exactly < 1266706345 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I get your point < 1266706354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :http://pastie.org/834713.txt?key=f7bl2cjpmw9tmchuyqdw < 1266706355 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Revised proof. < 1266706357 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :AnMaster: lol < 1266706368 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes alise this is perfect < 1266706374 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :ACTION puts down the cane :) < 1266706420 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, what you done there *is* literate programming it seems < 1266706425 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :*did < 1266706432 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"What you done there" sounds... uncouth! < 1266706433 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, youve* < 1266706437 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :err < 1266706444 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :plus ' possible < 1266706448 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Whateva yoove doned there's < 1266706454 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It's you've. < 1266706458 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :yeah < 1266706462 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, that was the real typo < 1266706476 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :as in I intended to write you've < 1266706477 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Anyway, it's literate programming, sort of; there's no delimiters, though, and I define subst's type twice, which isn't quite cosher. < 1266706485 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :But yes, it is text interspersed with code. :P < 1266706491 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: Okay so now I have to do the reverse < 1266706495 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266706500 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :yes i know not a proof < 1266706501 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :an explanation < 1266706503 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :blah blah blah < 1266706534 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :alise, an indirect proof sounds like the way to go there < 1266706652 0 :AnMaster!unknown@unknown.invalid PRIVMSG #esoteric :wait, maybe not < 1266706655 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: actually I'm not seeing it < 1266706659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :So what does "p x → p y" really mean? It means that given < 1266706659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :a value of type (the result of p x), we can return a < 1266706659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :value of type (the result of p y). Since values with the < 1266706659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :same normal form is distinguishable, this is equivalent < 1266706659 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :to (p x → p x), a tautology. < 1266706667 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :obviously p x has the same normal form as p x < 1266706675 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no no < 1266706680 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and that's what subst talks about < 1266706683 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :x = y does not mean x and y have the same normal form < 1266706685 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :f x having the same normal form as f y < 1266706689 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: x === y does though < 1266706695 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :you /said/ equiv was acceptable < 1266706697 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no < 1266706706 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :the two values are /the same value/ < 1266706710 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :so obviously they share a normal form < 1266706716 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :it's only when you have refl p y form and not subst < 1266707018 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :and I am grateful for that! NOW DIEEEE < 1266707033 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lol if you don't complete it will not attain full marks < 1266707039 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :maybe later < 1266707046 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise nah we covered it < 1266707052 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Also, * sucks! \star, \bigstar, Set or Type please. :P < 1266707056 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I mean look, subst can only produce an equality < 1266707059 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :(You may choose.) < 1266707061 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yeah < 1266707063 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but liebniz can produce _anything) < 1266707064 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whereas leibniz can produce anything < 1266707065 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :_anything_ < 1266707066 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes < 1266707066 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266707074 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :subst is just a restriction of leibniz's type pretty much < 1266707076 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :so that's why it's stronger < 1266707078 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :modulo a few, really unimportant things < 1266707117 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :no but they are important! < 1266707129 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :whatevs :P < 1266707134 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :anyway, on to important matters < 1266707138 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :\star, \bigstar, Set or Type < 1266707141 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :lol < 1266707146 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :\bigstar < 1266707157 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what type has \bigstar? < 1266707168 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :★₁? < 1266707172 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh wow that star is ugly in this font < 1266707174 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not antialiased < 1266707256 0 :madbr!~madbrain@modemcable175.136-81-70.mc.videotron.ca JOIN :#esoteric < 1266707267 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: THESE ARE IMPORTANT SYNTACTIC MATTERS :P < 1266707298 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :every though I read your note I still don't get why it's important.. < 1266707325 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's not I'm just joking < 1266707337 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :syntax is important but not the name of the set of sets :) < 1266707354 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Set is a bit of a misnomer though, isn't it? < 1266707359 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :because set theory is subverted in some places, no? < 1266707377 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yeah it's kind of weird to call it set < 1266707384 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :or wait no, the subversion is (exists a. a) as a type < 1266707393 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :but i'm not sure i even have existential quantification < 1266707397 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what does it even mean in a dependent language < 1266707468 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: if it obeys set theory though what's the problem < 1266707521 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :but it's not a set < 1266707527 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :howso? < 1266707536 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it's an inductively defined set if i have my set theory terminology right < 1266707541 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :you can interpret it as a set.. .but that's just like, your interpretation.. man < 1266707562 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :are you saying that because you could equally well call it ConstructiveStatement? < 1266707602 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"The view from the left", paper introducing Epigram: < 1266707622 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :"{says that it uses \bigstar_n blah blah} These level subscripts can be managed mechanically (Harper & Pollack, 1991), so we shall freely omit them." < 1266707625 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I was unaware. < 1266707661 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wait, records are the same thing as modules aren't they < 1266707664 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :given a good record system < 1266707684 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :well, rather, record types = module signatures < 1266707692 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :inferred with modules obvs < 1266707788 0 :augur_!unknown@unknown.invalid QUIT :Ping timeout: 240 seconds < 1266707911 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266708295 0 :chickenzilla!~chicken@olol.eu JOIN :#esoteric < 1266708300 0 :Wareya!unknown@unknown.invalid PRIVMSG #esoteric :hey < 1266708367 0 :augur_!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266708390 0 :augur!unknown@unknown.invalid QUIT :Ping timeout: 268 seconds < 1266708413 0 :BeholdMyGlory!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266708664 0 :BeholdMyGlory!~behold@unaffiliated/beholdmyglory JOIN :#esoteric < 1266708732 0 :augur!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266708900 0 :augur__!~augur@216-164-33-76.c3-0.slvr-ubr2.lnh-slvr.md.cable.rcn.com JOIN :#esoteric < 1266708904 0 :augur!unknown@unknown.invalid QUIT :Read error: Connection reset by peer < 1266708907 0 :augur_!unknown@unknown.invalid QUIT :Read error: No route to host < 1266708915 0 :scarf!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266708930 0 :MigoMipo!unknown@unknown.invalid QUIT :Remote host closed the connection < 1266709108 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :guh < 1266709112 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I need to understand Agda's library < 1266709148 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ooh, I like its syntax for forall < 1266709164 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :∀{a} → b < 1266709186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :⊥-elim : ∀ {w} {Whatever : Set w} → ⊥ → Whatever < 1266709186 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :⊥-elim () < 1266709248 0 :tombom_!unknown@unknown.invalid QUIT :Quit: Leaving < 1266709272 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: there are subtle problems at every single damn level of this and they all involve advanced mathematics, what the fuck am I doing?! < 1266709277 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :this is INSANE! < 1266709288 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I /know/ I'm not clever enough to do this < 1266709314 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :yes you are < 1266709314 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :once you have philosophy on your side it will become much easier < 1266709340 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :listen to this http://www.youtube.com/watch?v=q3nV6WqA4Y0 < 1266709364 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :what do you mean by "philosophy on your side" exactly? < 1266709371 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :like some sort of coherent "idea" of my language that everything follows from? < 1266709385 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :just think about what stuff means and such < 1266709389 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :huh it seems that agda's solution to having one _+_ with multiple definitions is just to... rename them on import < 1266709392 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :unless i'm reading this wrong < 1266709395 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: yeah i try < 1266709396 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :things will unify < 1266709414 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: i'm almost certain I'm not intelligent enough to prove my language correct, though. < 1266709426 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I don't have a Ph.D., I haven't studied proving such things. < 1266709428 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :alise oh of course you are, just implement a model in some other type theory < 1266709439 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :...you know, you're right. < 1266709446 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :I just have to implement this in Agda or Coq or whatever and I'm done. < 1266709458 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :My fear there is that implementing it in Agda will show how ridiculously similar to Agda my language is. :) < 1266709470 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I can't understand the proof for stuff like Coq but I know it's not a hoax :P < 1266709486 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :wow, gedit highlights agda as... wait for it... < 1266709487 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :VHDL < 1266709501 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :thats kind of ironic lol < 1266709506 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it actually doesn't work too ridiculously badly < 1266709511 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :it highlights open and record < 1266709513 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :not data though < 1266709524 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :highlights String too but not most other data types :P < 1266709531 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :highlights comments though which is the main thing imo < 1266709543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :data ℤ : Set where < 1266709543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : -[1+_] : (n : ℕ) → ℤ -- -[1+ n ] stands for - (1 + n). < 1266709543 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric : +_ : (n : ℕ) → ℤ -- + n stands for n. < 1266709547 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :Interesting representation. < 1266709579 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :did you like the song < 1266709592 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :which song < 1266709597 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :http://www.youtube.com/watch?v=q3nV6WqA4Y0 < 1266709603 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :oh right < 1266709607 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :my flash is borken, guess it's time to restart ff again < 1266709625 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i love you adobe. let me violate you with a rake < 1266709657 0 :augur__!unknown@unknown.invalid QUIT :Ping timeout: 264 seconds < 1266709666 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :heh you can get a script that makes youtube not use flash :P < 1266709764 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i know. < 1266709818 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :MissPiggy: also, http://www.youtube.com/watch?v=a8Dshk1XfDc < 1266709830 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :i love that lol < 1266709838 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :ditto < 1266709841 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :he is one completely great actor < 1266709871 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :god, dependent languages are so amazing < 1266709886 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :i should make a channel for them, in fact i just did #dependent < 1266709895 0 :MissPiggy!unknown@unknown.invalid PRIVMSG #esoteric :I did that :( nobody joined < 1266709902 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :WE CAN JOIN < 1266709979 0 :alise!unknown@unknown.invalid PRIVMSG #esoteric :It even has a topic! JOIN ME < 1266710066 0 :alise!unknown@unknown.invalid QUIT :Quit: Leaving < 1266710087 0 :alise!~alise@91.105.105.37 JOIN :#esoteric