2024/10/08

2024-10-08 00:00:11 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-08 00:02:58 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl) (Quit: My iMac has gone to sleep. ZZZzzz…)
2024-10-08 00:04:00 +0200__monty__(~toonn@user/toonn) (Quit: leaving)
2024-10-08 00:09:12 +0200andrewboltachev(~andrey@178.141.123.3) (Quit: Leaving.)
2024-10-08 00:12:22 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik
2024-10-08 00:24:21 +0200mantraofpie(~mantraofp@user/mantraofpie) (Ping timeout: 260 seconds)
2024-10-08 00:36:43 +0200xff0x(~xff0x@2405:6580:b080:900:31d8:fed5:6c70:b7b9) (Ping timeout: 264 seconds)
2024-10-08 00:41:44 +0200athan(~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!)
2024-10-08 00:42:05 +0200tuxpaint(~a@put.gay) (Quit: gn)
2024-10-08 00:42:24 +0200tuxpaint(~a@put.gay)
2024-10-08 00:49:33 +0200xff0x(~xff0x@2405:6580:b080:900:8633:3fd0:abbc:825)
2024-10-08 00:51:47 +0200talismanick(~user@2601:644:937c:ed10::ae5) talismanick
2024-10-08 01:03:49 +0200thegeekinside(~thegeekin@189.217.93.202) thegeekinside
2024-10-08 01:08:13 +0200acidjnk(~acidjnk@p200300d6e72cfb09b827840f1f57a57d.dip0.t-ipconnect.de) (Ping timeout: 252 seconds)
2024-10-08 01:15:00 +0200machinedgod(~machinedg@d50-99-47-73.abhsia.telus.net) (Ping timeout: 265 seconds)
2024-10-08 01:16:39 +0200troojg(~troojg@user/troojg) troojg
2024-10-08 01:18:29 +0200motherfsck(~motherfsc@user/motherfsck) (Quit: quit)
2024-10-08 01:20:39 +0200motherfsck(~motherfsc@user/motherfsck) motherfsck
2024-10-08 01:23:53 +0200thegeekinside(~thegeekin@189.217.93.202) (Remote host closed the connection)
2024-10-08 01:27:24 +0200remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) (Ping timeout: 260 seconds)
2024-10-08 01:29:30 +0200remedan(~remedan@ip-62-245-108-153.bb.vodafone.cz) remedan
2024-10-08 01:32:17 +0200Tuplanolla(~Tuplanoll@91-159-69-59.elisa-laajakaista.fi) (Quit: Leaving.)
2024-10-08 01:36:45 +0200supercode(~supercode@user/supercode) (Quit: Client closed)
2024-10-08 01:38:01 +0200athan(~athan@syn-098-153-145-140.biz.spectrum.com) athan
2024-10-08 01:45:43 +0200Digit(~user@user/digit) (Read error: Connection reset by peer)
2024-10-08 01:47:26 +0200Digit(~user@user/digit) Digit
2024-10-08 01:59:34 +0200gentauro(~gentauro@user/gentauro) (Read error: Connection reset by peer)
2024-10-08 02:05:08 +0200gentauro(~gentauro@user/gentauro) gentauro
2024-10-08 02:26:42 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2024-10-08 02:27:02 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-08 02:34:07 +0200TonyStone(~TonyStone@user/TonyStone) TonyStone
2024-10-08 02:35:20 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-08 02:37:41 +0200alp_(~alp@2001:861:e3d6:8f80:e06c:ffe4:c8a0:d22b) (Ping timeout: 248 seconds)
2024-10-08 02:39:25 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection)
2024-10-08 02:39:57 +0200morb(~morb@108.41.100.120)
2024-10-08 02:44:39 +0200hgolden__(~hgolden@23.162.40.28) hgolden
2024-10-08 02:47:20 +0200hgolden_(~hgolden@146.70.173.37) (Ping timeout: 272 seconds)
2024-10-08 02:48:04 +0200xff0x(~xff0x@2405:6580:b080:900:8633:3fd0:abbc:825) (Ping timeout: 260 seconds)
2024-10-08 02:52:05 +0200troojg(~troojg@user/troojg) (Ping timeout: 248 seconds)
2024-10-08 02:54:24 +0200morb(~morb@108.41.100.120) (Remote host closed the connection)
2024-10-08 03:12:56 +0200spew(~spew@201.141.99.170) (Quit: spew)
2024-10-08 03:23:30 +0200krei-se(~krei-se@p57af2362.dip0.t-ipconnect.de) (Ping timeout: 246 seconds)
2024-10-08 03:24:12 +0200krei-se(~krei-se@p5085d9ca.dip0.t-ipconnect.de) krei-se
2024-10-08 03:24:13 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-08 03:24:22 +0200ethantwardy(user@user/ethantwardy) ethantwardy
2024-10-08 03:25:26 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection)
2024-10-08 03:28:54 +0200 <haskellbridge> <thirdofmay18081814goya> what are some useful coinductive types?
2024-10-08 03:29:09 +0200troojg(~troojg@user/troojg) troojg
2024-10-08 03:29:17 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net)
2024-10-08 03:29:43 +0200 <monochrom> Infinite lists. Infinite free monads.
2024-10-08 03:30:14 +0200 <haskellbridge> <thirdofmay18081814goya> hm right i see ty
2024-10-08 03:31:06 +0200 <talismanick> infinite (nonempty) lists are often referred to in literature as streams
2024-10-08 03:31:13 +0200 <talismanick> you can even do calculus on them: https://www.cs.ox.ac.uk/people/ralf.hinze/publications/CSC.pdf
2024-10-08 03:32:01 +0200 <haskellbridge> <thirdofmay18081814goya> are these the streams you usually encounter in programming?
2024-10-08 03:33:35 +0200 <geekosaur> I think mathematical streams are used to model those streams, since their size is from the standpoint of programs "infinite" or at least indeterminate?
2024-10-08 03:34:17 +0200 <EvanR> object oriented programming via copatterns
2024-10-08 03:34:18 +0200 <geekosaur> for example, a network stream could hypothetically last forever, although in practice something will cause the remote to close the connection or be lost or etc.
2024-10-08 03:34:33 +0200 <monochrom> I didn't think of the elegant "join s = head (head s) : join (tail (tail s))". (I only knew to wrote it as [s !! i !! i | i <- [0..]])
2024-10-08 03:35:05 +0200 <talismanick> there are types which are isomorphic to streams (can be exchanged one-for-one); these are given a `Comonad` instance, which lets them use any operation defined on comonads (generalized from the case specialized to the stream type given in the paper)
2024-10-08 03:35:14 +0200 <EvanR> chalk up remote host closed connection to "thread died" xD
2024-10-08 03:35:26 +0200 <EvanR> thread's code itself has no idea
2024-10-08 03:35:44 +0200 <EvanR> it never observed the end of the stream so it's still infinite xD
2024-10-08 03:35:57 +0200 <talismanick> https://hackage.haskell.org/package/comonad-5.0.8/ shows 164 reverse dependencies and 8416 indirect
2024-10-08 03:36:15 +0200 <talismanick> so there are few cases :D
2024-10-08 03:36:31 +0200 <haskellbridge> <thirdofmay18081814goya> i see thanks for comments!
2024-10-08 03:37:12 +0200 <geekosaur> fwiw what I am aiming for is "the size isn't defined statically by your program, but by something synamic / outside of it"
2024-10-08 03:37:45 +0200 <geekosaur> *dynamic
2024-10-08 03:38:58 +0200morb(~morb@pool-108-41-100-120.nycmny.fios.verizon.net) (Remote host closed the connection)
2024-10-08 03:39:07 +0200 <EvanR> the basic haskell list type really is a conundrum for ultrafinitists right
2024-10-08 03:39:09 +0200 <monochrom> It is the same as "unbounded" Integer where there is a bound but it's outside of your model.
2024-10-08 03:39:23 +0200 <EvanR> if all haskell lists are "really" finite, then what is the answer to length (repeat ())
2024-10-08 03:39:54 +0200 <EvanR> or is the length function broken
2024-10-08 03:40:11 +0200 <geekosaur> ⊥ because `length` breaks when it hits `maxBound :: Int`
2024-10-08 03:40:28 +0200 <EvanR> >_<
2024-10-08 03:41:35 +0200youthlic(~Thunderbi@user/youthlic) youthlic
2024-10-08 03:41:58 +0200 <haskellbridge> <thirdofmay18081814goya> hm can we not do induction on coinductive structures or does coinduction capture something completely different?
2024-10-08 03:42:12 +0200 <haskellbridge> <thirdofmay18081814goya> (is coinduction the type eliminator for coinductive types?)
2024-10-08 03:43:42 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 252 seconds)
2024-10-08 03:45:53 +0200geekosauris wondering if it would be a type introducer
2024-10-08 03:46:34 +0200 <geekosaur> (or "co-eliminator", whatever that works out to be)
2024-10-08 03:48:24 +0200xff0x(~xff0x@fsb6a9491c.tkyc517.ap.nuro.jp)
2024-10-08 03:51:04 +0200 <EvanR> the only reason you can do induction on an inductive type is because it comes with an induction rule
2024-10-08 03:51:59 +0200 <EvanR> unless you can figure out how to synthesize one as a theorem
2024-10-08 03:52:09 +0200 <haskellbridge> <thirdofmay18081814goya> yeah the induction rule associated to a particular inductive type is the elimination rule for that type
2024-10-08 03:54:08 +0200 <monochrom> induction rule is part of what "inductive type" means. What does "coinductive type" mean? Perhaps it contains the coinduction rule.
2024-10-08 03:54:31 +0200 <EvanR> you can probably come up with a coinductive type which it is possible to derive a synthetic induction rule
2024-10-08 03:54:35 +0200 <EvanR> for
2024-10-08 03:54:56 +0200 <EvanR> like one that doesn't lead to infinite data
2024-10-08 03:56:22 +0200 <EvanR> but if you look at another example, the potentially infinite natural number type... you can see how induction would fail
2024-10-08 03:57:38 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) raehik
2024-10-08 03:57:59 +0200 <EvanR> to prove something for all potentially infinite natural numbers, can you just prove it for 0 and assuming P for n prove it for n+1
2024-10-08 03:58:04 +0200 <EvanR> no
2024-10-08 03:59:20 +0200 <haskellbridge> <thirdofmay18081814goya> if you use a set-theoretic semantics any natural number is a finite set the only infinite set is the set of natural numbers itself, proofs on the set of all natural numbers use that method yeah
2024-10-08 03:59:47 +0200 <EvanR> specifically define the potentially infinite natural numbers using the coinductive style
2024-10-08 03:59:59 +0200 <EvanR> not set theory
2024-10-08 03:59:59 +0200 <haskellbridge> <thirdofmay18081814goya> oh
2024-10-08 04:00:08 +0200 <haskellbridge> <thirdofmay18081814goya> ok i see
2024-10-08 04:00:28 +0200 <EvanR> though I'm not sure set theory would fix it
2024-10-08 04:01:09 +0200 <monochrom> You can do it in set theory. It is just not called "the natural numbers" there.
2024-10-08 04:01:26 +0200 <EvanR> ordinals? xD
2024-10-08 04:01:40 +0200 <EvanR> that comes with its own induction rule
2024-10-08 04:01:57 +0200 <monochrom> But we also say "lazy Krivine machine" where Krivine only wrote an eager machine and it was Sestoft who modified it to make a lazy machine.
2024-10-08 04:02:39 +0200 <monochrom> We also say "make a Xerox copy" and then go on to use a Konica photocopier.
2024-10-08 04:02:59 +0200 <EvanR> thirdofmayyaddayaddagoya: if you do classic induction to prove something, you proved it for all finite natural numbers, and that's it
2024-10-08 04:03:01 +0200 <monochrom> so I guess "infinite natural" and even "uncountable natural" can be legit names.
2024-10-08 04:03:31 +0200 <EvanR> it misses something
2024-10-08 04:05:08 +0200 <EvanR> a related phenomenon, if you write a recursive algorithm to process a natural number and it recurses on something smaller than its argument, you can be sure it terminates. But then that fails if someone gives you an infinite number
2024-10-08 04:05:34 +0200 <EvanR> it's illogical!
2024-10-08 04:06:54 +0200 <monochrom> It's even the same phenomenon. The termination proof assumes induction, so it only covers what induction reaches.
2024-10-08 04:07:01 +0200 <haskellbridge> <thirdofmay18081814goya> hm looks like coalgebras sort disassemble things
2024-10-08 04:07:09 +0200 <haskellbridge> <thirdofmay18081814goya> sort of disassemble things
2024-10-08 04:08:29 +0200 <haskellbridge> <thirdofmay18081814goya> hm so then in a sense the final coalgebra gives you a canonical way to disassemble a thing
2024-10-08 04:08:41 +0200 <monochrom> On recent exams I became careful to write "Prove by induction: For all finite lists xs, ..." :)
2024-10-08 04:12:37 +0200 <EvanR> is final coalgebra the categorical wonkery for coinductive types?
2024-10-08 04:12:40 +0200 <monochrom> Hagino says "co-natural number" instead of "infinite natural number". :)
2024-10-08 04:12:54 +0200 <haskellbridge> <thirdofmay18081814goya> EvanR: yes
2024-10-08 04:13:33 +0200td_(~td@i5387091A.versanet.de) (Ping timeout: 246 seconds)
2024-10-08 04:13:58 +0200 <monochrom> Hagino's thesis has a toy language that lets you declare inductive types and coinductive types. (Or more accurately, initial algebra types and final coalgebra types.) You may find many answers there. You can just google "Hagino thesis". (I just did.)
2024-10-08 04:14:45 +0200 <haskellbridge> <thirdofmay18081814goya> monochrom: was planning to return to his thesis after foray into coinduction
2024-10-08 04:14:56 +0200 <EvanR> disassemble might give you the wrong idea
2024-10-08 04:15:11 +0200 <haskellbridge> <thirdofmay18081814goya> monochrom: by any chance do you know how Hagino's type formation through adjunction works?
2024-10-08 04:15:17 +0200 <monochrom> And if that is not enough, look for "Bart Jacobs coalgebra". He's the coalgebra guy.
2024-10-08 04:15:28 +0200 <EvanR> the coinductive style gives you options for how to observe a value of the type, if you could ever obtain one to start with
2024-10-08 04:15:36 +0200 <monochrom> I don't, I didn't really read it.
2024-10-08 04:15:39 +0200td_(~td@i5387092D.versanet.de) td_
2024-10-08 04:16:02 +0200athan(~athan@syn-098-153-145-140.biz.spectrum.com) (Quit: Konversation terminated!)
2024-10-08 04:16:30 +0200 <EvanR> so if the value was assembled somehow yeah you could diassemble it, but it might just have multiple ways to proceed to the next observation which for all you know is unrelated to any construction sequence
2024-10-08 04:17:41 +0200 <EvanR> and in the case of infinite data, assembling from the ground up is impossible
2024-10-08 04:18:52 +0200 <EvanR> but maybe that's just prejudice leaking through from "a monad is this thing you wrap like a burrito" PTSD
2024-10-08 04:19:25 +0200 <dolio> To build codata, you say what happens for all the ways of observing it, corecursively.
2024-10-08 04:21:28 +0200 <dolio> Like unfoldr, but that only has one thing to observe.
2024-10-08 04:26:10 +0200 <dolio> It's nicer when the outermost level is a product, so there are multiple observations, like when data is a sum, with multiple constructors.
2024-10-08 04:27:08 +0200 <haskellbridge> <thirdofmay18081814goya> ty for comments helpful stuff
2024-10-08 04:29:21 +0200LukeHoersten(~LukeHoers@user/lukehoersten) LukeHoersten
2024-10-08 04:31:07 +0200identity(~identity@user/ZharMeny) (Quit: ERC 5.6.0.30.1 (IRC client for GNU Emacs 30.0.91))
2024-10-08 04:36:59 +0200raehik(~raehik@rdng-25-b2-v4wan-169990-cust1344.vm39.cable.virginm.net) (Ping timeout: 260 seconds)
2024-10-08 04:39:49 +0200motherfsck(~motherfsc@user/motherfsck) (Ping timeout: 248 seconds)
2024-10-08 04:52:19 +0200troojg(~troojg@user/troojg) (Ping timeout: 260 seconds)
2024-10-08 04:52:51 +0200athan(~athan@syn-098-153-145-140.biz.spectrum.com) athan
2024-10-08 04:59:04 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 272 seconds)
2024-10-08 05:01:04 +0200sourcetarius(~sourcetar@user/sourcetarius) (Quit: sourcetarius)
2024-10-08 05:09:12 +0200zlqrvx_(~zlqrvx@101.175.150.247) (Ping timeout: 272 seconds)
2024-10-08 05:22:21 +0200motherfsck(~motherfsc@user/motherfsck) motherfsck
2024-10-08 05:27:37 +0200youthlic(~Thunderbi@user/youthlic) (Remote host closed the connection)
2024-10-08 05:27:37 +0200ethantwardy(user@user/ethantwardy) (Read error: Connection reset by peer)
2024-10-08 05:29:52 +0200youthlic(~Thunderbi@user/youthlic) youthlic
2024-10-08 05:31:20 +0200ethantwardy(user@user/ethantwardy) ethantwardy
2024-10-08 05:43:38 +0200floyza(~gavin@h69-11-148-150.kndrid.broadband.dynamic.tds.net) (Remote host closed the connection)
2024-10-08 05:43:57 +0200floyza(~gavin@h69-11-148-150.kndrid.broadband.dynamic.tds.net) gdown
2024-10-08 05:44:40 +0200infinity0(~infinity0@pwned.gg) (Ping timeout: 272 seconds)
2024-10-08 05:46:59 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) (Ping timeout: 260 seconds)
2024-10-08 05:49:41 +0200Lord_of_Life(~Lord@user/lord-of-life/x-2819915) Lord_of_Life
2024-10-08 06:04:53 +0200infinity0(~infinity0@pwned.gg) infinity0
2024-10-08 06:07:51 +0200talismanick(~user@2601:644:937c:ed10::ae5) (Remote host closed the connection)
2024-10-08 06:08:05 +0200talismanick(~user@2601:644:937c:ed10::ae5) talismanick
2024-10-08 06:15:45 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-08 06:19:30 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) (Ping timeout: 265 seconds)
2024-10-08 06:24:28 +0200_d0t(~{-d0t-}@user/-d0t-/x-7915216) {-d0t-}
2024-10-08 06:34:45 +0200 <Axman6> I'm forgetting the name of something; "a finger-tree is an example of a non-??? recursive structure", I want to say ??? = uniform but I don't think that's right
2024-10-08 06:39:57 +0200simendsjo(~user@84.211.91.108) (Ping timeout: 276 seconds)
2024-10-08 06:45:50 +0200 <jackdk> Axman6: Is this about how finger trees use polymorphic recursion?
2024-10-08 06:45:56 +0200LukeHoersten(~LukeHoers@user/lukehoersten) (Quit: My MacBook has gone to sleep. ZZZzzz…)
2024-10-08 06:55:47 +0200 <mauke> Axman6: non-regular? nested type?
2024-10-08 06:57:53 +0200michalz(~michalz@185.246.207.222)
2024-10-08 07:03:41 +0200astraamish
2024-10-08 07:03:44 +0200amish(sid289983@id-289983.hampstead.irccloud.com) (Changing host)
2024-10-08 07:03:44 +0200amish(sid289983@user/amish) amish
2024-10-08 07:04:04 +0200amishastra
2024-10-08 07:08:47 +0200st_aldini1(~Thunderbi@136.48.22.91) st_aldini
2024-10-08 07:09:05 +0200euphores(~SASL_euph@user/euphores) euphores
2024-10-08 07:10:13 +0200st_aldini(~Thunderbi@136.48.22.91) (Ping timeout: 248 seconds)
2024-10-08 07:10:13 +0200st_aldini1st_aldini
2024-10-08 07:12:38 +0200takuan(~takuan@178-116-218-225.access.telenet.be)
2024-10-08 07:21:51 +0200dtman34(~dtman34@2601:447:d080:1a3c:e9e9:5bc8:51:a5ea) (Quit: ZNC 1.8.2+deb3.1 - https://znc.in)
2024-10-08 07:22:12 +0200dtman34(~dtman34@c-174-53-203-90.hsd1.mn.comcast.net) dtman34
2024-10-08 07:23:01 +0200jinsun(~jinsun@user/jinsun) (Ping timeout: 248 seconds)
2024-10-08 07:32:01 +0200weary-traveler(~user@user/user363627) (Remote host closed the connection)
2024-10-08 07:38:13 +0200 <Axman6> yeah I think both of those work
2024-10-08 07:53:12 +0200acidjnk(~acidjnk@p200300d6e72cfb34519e9ca14c5ce943.dip0.t-ipconnect.de) acidjnk
2024-10-08 07:57:33 +0200ubert(~Thunderbi@178.165.187.120.wireless.dyn.drei.com) ubert
2024-10-08 08:04:00 +0200vanishingideal(~vanishing@user/vanishingideal) (Ping timeout: 272 seconds)
2024-10-08 08:08:25 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Read error: Connection reset by peer)
2024-10-08 08:08:38 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-08 08:09:11 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de) (Remote host closed the connection)
2024-10-08 08:09:33 +0200euleritian(~euleritia@ip4d16fc38.dynamic.kabel-deutschland.de)
2024-10-08 08:10:24 +0200vanishingideal(~vanishing@user/vanishingideal) vanishingideal
2024-10-08 08:10:57 +0200mari-estel(~mari-este@185.238.219.10)
2024-10-08 08:11:38 +0200mari77696(~mari-este@185.238.219.10)
2024-10-08 08:14:05 +0200foul_owl(~kerry@185.219.141.162) (Ping timeout: 255 seconds)
2024-10-08 08:17:16 +0200sord937(~sord937@gateway/tor-sasl/sord937) sord937
2024-10-08 08:32:05 +0200Sgeo(~Sgeo@user/sgeo) (Read error: Connection reset by peer)
2024-10-08 08:32:17 +0200mari77696(~mari-este@185.238.219.10) (Ping timeout: 248 seconds)
2024-10-08 08:32:49 +0200mari-estel(~mari-este@185.238.219.10) (Ping timeout: 248 seconds)
2024-10-08 08:42:16 +0200rosco(~rosco@175.136.22.30) rosco
2024-10-08 08:44:10 +0200tromp(~textual@92-110-219-57.cable.dynamic.v4.ziggo.nl)