kha / electrolysis Goto Github PK
View Code? Open in Web Editor NEWSimple verification of Rust programs via functional purification in Lean 2(!)
License: Other
Simple verification of Rust programs via functional purification in Lean 2(!)
License: Other
That can work with latest rust and lean4? I want to check my quant trading program in rust, thanks.
I am using Lean version 3.2.1, but can't seem to sort out the imports and opens.
For example, inside core/generated.lean, at the first line, I get the error "file 'core/pre' not found in the LEAN_PATH. I can fix this particular error by changing the import to read import ..core.pre. Is there another way to fix this that doesn't involve editing the files?
In sem.lean, at line 3, open eq.ops, I get the error "invalid namespace name 'eq.ops'". Is replacing that line with open eq OK?
Finally, anywhere where there is an command of the form open [.+] .+ I get the error "invalid 'open/export' command, identifier expected". I am not sure how to fix those either.
I suspect that this could all be fixed by switching to the correct Lean version. What version of Lean does electrolysis depend on? Is there a fix that doesn't involve switching versions of Lean?
Thanks!
Hey,
I wanted to add electrolysis to awesome-static-analysis, but I can't the license of electrolysis. Maybe it might make sense to add a LICENSE
file to the repo to clarify that. Some suggestions at http://choosealicense.com/ ๐
Could you elaborate on whether functional purification can still hold when using types with interior mutability, like 'Cell'?
In the following example, c2
is mutated through c1
. Is there any rule that can be used to transform this into a purely functional equivalent (without having to track all the aliases to c1
, which might be difficult for non-trivial cases)?
let c1: &Cell<i32> = &Cell::new(0);
let c2: &Cell<i32> = c1;
c1.set(2);
println!("{:?}", c2.get()); // Prints 2
What about RefCell, Mutex, ... ?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.