Newest at the top
2025-02-03 09:48:57 +0100 | kuribas | (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) kuribas |
2025-02-03 09:48:54 +0100 | euleritian | (~euleritia@ip4d17fae8.dynamic.kabel-deutschland.de) |
2025-02-03 09:48:43 +0100 | kuribas | (~user@ptr-17d51emyzmm4mq8sbfo.18120a2.ip6.access.telenet.be) (Remote host closed the connection) |
2025-02-03 09:48:43 +0100 | <kuribas> | Maybe using a "merge" relation to merge contexts. |
2025-02-03 09:48:43 +0100 | <kuribas> | Right, but then the context is part of the relation. |
2025-02-03 09:48:36 +0100 | euleritian | (~euleritia@dynamic-176-001-212-124.176.1.pool.telefonica.de) (Read error: Connection reset by peer) |
2025-02-03 09:48:06 +0100 | <tomsmeding> | (if you want to see the whole type system: Fig 2 + Fig 3 from https://citeseerx.ist.psu.edu/document?repid=rep1&type=pdf&doi=24c850390fba27fc6f3241cb34ce7bc6f37… ) |
2025-02-03 09:47:05 +0100 | <tomsmeding> | on the other hand, perhaps this just works perfectly fine in a logic system |
2025-02-03 09:46:32 +0100 | <tomsmeding> | and you're allowed to (implicitly in the rule) reorder the environment arbitrarily before said partitioning |
2025-02-03 09:46:13 +0100 | <tomsmeding> | this types function application; the point is that you need to partition the environment over the two subexpressions |
2025-02-03 09:45:53 +0100 | <tomsmeding> | indicating the horizontal bar with '/' |
2025-02-03 09:45:43 +0100 | <tomsmeding> | also it depends a little bit on what type system you're implementing, I think. If you look at a resource-linear type system, you have rules like: {A |- t1 : a -> b B |- t2 : a} / {A, B |- t1 t2 : b} |
2025-02-03 09:45:33 +0100 | <kuribas> | oh, there is even kanren in rust. |
2025-02-03 09:44:41 +0100 | <kuribas> | Right :) If I use minikanren or core.logic, then the occurs check is on by default. |
2025-02-03 09:44:12 +0100 | <tomsmeding> | you were already worrying about the occurs check above |
2025-02-03 09:44:11 +0100 | <kuribas> | Just basic logic relations, I don't see what more I will need. |
2025-02-03 09:44:00 +0100 | <kuribas> | tomsmeding: it seems quite straigtforward. |
2025-02-03 09:43:46 +0100 | drdo6 | drdo |
2025-02-03 09:43:45 +0100 | drdo | (~drdo@bl9-110-63.dsl.telepac.pt) (Ping timeout: 252 seconds) |
2025-02-03 09:42:48 +0100 | <kuribas> | tomsmeding: The type becomes the relation proposition, and the values the dependencies. |
2025-02-03 09:42:26 +0100 | merijn | (~merijn@77.242.116.146) merijn |
2025-02-03 09:42:25 +0100 | drdo6 | (~drdo@bl9-110-63.dsl.telepac.pt) drdo |
2025-02-03 09:39:23 +0100 | lortabac | (~lortabac@2a01:e0a:541:b8f0:55ab:e185:7f81:54a4) lortabac |
2025-02-03 09:39:03 +0100 | <tomsmeding> | if it turns out that the logic language is not quite expressive enough to do what you want and you end up needing to work around that, I'm not sure the result will really be much simpler than a straight implementation in a regular (functional) language |
2025-02-03 09:38:12 +0100 | <tomsmeding> | if you can indeed express them very naturally in the logic language :) |
2025-02-03 09:38:11 +0100 | <kuribas> | Of course, it doesn't prove the underlying logic system correct, but I don't really care about that. |
2025-02-03 09:37:51 +0100 | <kuribas> | tomsmeding: I am just surprised, because it seems much easier to prove right than a full blown algorithm that includes logic variables and unification. |
2025-02-03 09:36:12 +0100 | <kuribas> | Maybe a simple scheme/clojure macro to make it look nicer. |
2025-02-03 09:35:57 +0100 | <kuribas> | tomsmeding: I want to write them as an inductive data family in idris, then use elaborator reflection to translate them automatically. |
2025-02-03 09:34:16 +0100 | CiaoSen | (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) CiaoSen |
2025-02-03 09:32:57 +0100 | Sgeo | (~Sgeo@user/sgeo) (Read error: Connection reset by peer) |
2025-02-03 09:31:37 +0100 | rachelambda8 | (~rachelamb@cust-95-80-25-71.csbnet.se) |
2025-02-03 09:30:03 +0100 | <tomsmeding> | simple prolog rules without cut can be directly translated to TeX inference rules with nothing more than a few regexes, but I'm not sure about the other way round |
2025-02-03 09:27:55 +0100 | <kuribas> | Also, prolog doesn't have occurs check. |
2025-02-03 09:27:23 +0100 | dysthesis | (~dysthesis@user/dysthesis) (Remote host closed the connection) |
2025-02-03 09:24:24 +0100 | rachelambda8 | (~rachelamb@cust-95-80-25-71.csbnet.se) (Ping timeout: 260 seconds) |
2025-02-03 09:23:19 +0100 | alfiee | (~alfiee@user/alfiee) (Ping timeout: 265 seconds) |
2025-02-03 09:20:28 +0100 | <kuribas> | Maybe because it is inefficient? |
2025-02-03 09:20:22 +0100 | <kuribas> | It seems to me that inference rules lend themselves quite well towards logic programming, but I don't find a lot about this. |
2025-02-03 09:19:47 +0100 | <kuribas> | Is there any work on implementing type inference algorithms in prolog or logic languages (minikanren)? |
2025-02-03 09:18:41 +0100 | alfiee | (~alfiee@user/alfiee) alfiee |
2025-02-03 09:05:04 +0100 | sord937 | (~sord937@gateway/tor-sasl/sord937) sord937 |
2025-02-03 09:04:27 +0100 | peterbecich | (~Thunderbi@syn-047-229-123-186.res.spectrum.com) (Ping timeout: 265 seconds) |
2025-02-03 09:04:01 +0100 | CiaoSen | (~Jura@2a05:5800:26f:a800:ca4b:d6ff:fec1:99da) (Ping timeout: 248 seconds) |
2025-02-03 09:02:30 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 276 seconds) |
2025-02-03 09:01:39 +0100 | caconym | (~caconym@user/caconym) caconym |
2025-02-03 09:00:03 +0100 | caconym | (~caconym@user/caconym) (Quit: bye) |
2025-02-03 08:57:11 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) merijn |
2025-02-03 08:47:37 +0100 | erdem | (~erdem@user/erdem) (Quit: ZNC 1.9.1 - https://znc.in) |
2025-02-03 08:46:29 +0100 | merijn | (~merijn@host-vr.cgnat-g.v4.dfn.nl) (Ping timeout: 248 seconds) |