!MfVXcmpKuyudZHcqil:matrix.org

The K Framework User Group

316 Members
The K Framework (kframework.org) and its applications to smart contracts.  EVM: github.com/kframework/evm-semantics Viper: github.com/kframework/viper-semantics45 Servers

Load older messages


SenderMessageTime
9 Nov 2024
@finlifin:matrix.orgfinlifin 🐧 08:19:08
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt Yep! In fact, one of the tools you get is a verification engine based on symbolic execution! 15:43:39
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt What are you thinking to build? 15:43:45
10 Nov 2024
@finlifin:matrix.orgfinlifin oh 05:28:49
@finlifin:matrix.orgfinlifin i am exploring a new asynchronous programming paradigm and semantics based on transactional memory and concurrent program verification 05:30:32
11 Nov 2024
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt Well, K can definitely be used to model that! It's good at handling concurrency and distributed systems! 01:01:16
@finlifin:matrix.orgfinlifin and how does k verify separation logic assertions 👀 09:14:28
@_slack_runtimeverification_U0269R7CNNB:matrix.orgraoul.schaffranek The K-Framework is based on Matching Logic, which can be viewed as a generalization of separation logic. This should be a good starting point: https://research.runtimeverification.com/#separation-logic-in-matching-logic 09:48:33
@finlifin:matrix.orgfinlifin love you 09:52:13
@finlifin:matrix.orgfinlifin lol 09:52:15
14 Nov 2024
@finlifin:matrix.orgfinlifin how does k due with the verification programs that contains reference aliasing 01:14:32
@finlifin:matrix.orgfinlifin * how does k due with the verification of programs that contains reference aliasing 01:14:48
@finlifin:matrix.orgfinlifin my programming language does have an ownership type system to ensure there's no aliasing 01:19:00
@finlifin:matrix.orgfinlifin 🤧 01:19:07
@finlifin:matrix.orgfinlifin * my programming language does not have an ownership type system to ensure there's no aliasing 01:20:26
20 Nov 2024
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt It certainly can be modelled, the question is whether reasoning about it will be easy or not. K does not make any assumptinos about how your programming language works, so you can model whatever system you want. In the C semantics, for example, we fully module the C17 standard and that includes the possibility of undefined behavior and pointer aliasing: https://github.com/kframework/c-semantics 01:43:56
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt Unlike other logical frameworks (like separation logic), we do not commit to a particular way of representing memory/heap, we let the user model it how they like out of the primitive ADTs and functional sub-language that K provides. 01:44:28
5 Dec 2024
@ahelwer:matrix.orgAndrew Helwer joined the room.19:54:38
@ahelwer:matrix.orgAndrew HelwerHello! Recently learned about K and it looks very interesting. One question I have: once you've specified your language's syntax and semantics in K, is it possible to use it to generate arbitrary semantically-valid files for your language? So then K could function as a fuzzing oracle for other implementations of your language.19:58:29
@ahelwer:matrix.orgAndrew HelwerA second question I have is how the K parsing language handles non-context-free parts of languages, for example Python's indentation-sensitive syntax. The language I am involved in (TLA+) has something similar with vertically-aligned conjunction and disjunction lists.19:59:24
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt Generating syntactically valid programs is definitely possible. Semantically valid depends on the definition of that, you would need a typing semantics to generate type valid programs, and you could reasonably generate ones valid for execution by using the execution semantics. You could also reverse the rules of a semantics and potentially generate new programs that way, though that would be pretty experimental. 20:44:09
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt Non-context-free is possible to an extent Ks parser is pretty powerful and you can control a lot of aspects of it. But for real language use, you usually want to use an external parser which then spits out ASTs for K to use, because a dedicated parser will be faster usually. 20:45:34
@ahelwer:matrix.orgAndrew Helwer Thanks! So to be clear by possible it isn't as simple as plug a K spec into an existing tool, this would be a research project? 20:49:25
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt It would require a bit of python scripting to get syntactically valid programs, and a bit more to check that they're valid for execution (don't get stuck), and would require a typing semantics (usually smaller than an execution semantics) to generate type valid programs. So I wouldn't say it's a research project (all the steps are clear), but would require some engineering work. 20:54:18
@ahelwer:matrix.orgAndrew HelwerFor the valid type-level programs would those also follow the generate-syntax-and-test method or are they build constructively?20:56:19
@ahelwer:matrix.orgAndrew Helwer(TLA+ has a very simple pseudo-type system where we just categorize expressions into constant, state-level, action-level, or behavior-level)20:57:00
@_slack_runtimeverification_U8T2RJ802:matrix.orgeverett.hildenbrandt Generate syntaxes then test approach is where I would start. As an experiment, you can try reversing the rules in a semantics and then using that to generate programs in a given type. That would probably be a bit more direct of a way to generate type-valid programs, but would be more experimental. Pyk (the python library for k definitions) would make that procedure easier. 21:09:39
6 Dec 2024
@david:web3.foundationDavid | W3F - OOO until 6 Jan changed their display name from David | W3F to David | W3F - OOO (sick).06:23:28
9 Dec 2024
@david:web3.foundationDavid | W3F - OOO until 6 Jan changed their display name from David | W3F - OOO (sick) to David | W3F.07:52:14
10 Dec 2024
@david:web3.foundationDavid | W3F - OOO until 6 Jan changed their display name from David | W3F to David | W3F - Zug 9 - 13 Dec..06:53:42

Show newer messages


Back to Room ListRoom Version: