🐦: http://twitter.com/joomy
🕸️: http://joomy.korkutblech.com
1. bidirectional predicates in the Prolog world (I think someone already mentioned logic programming)
2. bidirectional lenses. maybe too domain-specific, but probably a good start:
www.seas.upenn.edu/~harmony/
dl.acm.org/doi/10.1145/...
1. bidirectional predicates in the Prolog world (I think someone already mentioned logic programming)
2. bidirectional lenses. maybe too domain-specific, but probably a good start:
www.seas.upenn.edu/~harmony/
dl.acm.org/doi/10.1145/...
though to be fair, there is a lot of existing work on reasoning about C programs: softwarefoundations.cis.upenn.edu/vc-current/P...
in the paper, we are using one of them (VST) to reason about C foreign functions linked to CertiCoq-compiled Coq programs.
though to be fair, there is a lot of existing work on reasoning about C programs: softwarefoundations.cis.upenn.edu/vc-current/P...
in the paper, we are using one of them (VST) to reason about C foreign functions linked to CertiCoq-compiled Coq programs.
* github.com/search?q=rep...
* doi.org/10.4230/LIPI...
* doi.org/10.1145/3293...
Expressing the program with an ITree and writing an execution function for it in C is probably the way to go.
* github.com/search?q=rep...
* doi.org/10.4230/LIPI...
* doi.org/10.1145/3293...
Expressing the program with an ITree and writing an execution function for it in C is probably the way to go.
I don't foresee a huge challenge for the mutable array example: We have a purely functional model that computes the same result; VST is good at such proofs. We also now have proofs about how the GC deals with mutation.
I don't foresee a huge challenge for the mutable array example: We have a purely functional model that computes the same result; VST is good at such proofs. We also now have proofs about how the GC deals with mutation.
can you clarify what you mean by dynamically changing models? do you mean based on input from the outside world? I think you would have to model that as an effect, like in section 12.2.
can you clarify what you mean by dynamically changing models? do you mean based on input from the outside world? I think you would have to model that as an effect, like in section 12.2.