Giter Club home page Giter Club logo

creusat's People

Contributors

sarsko avatar xldenis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

creusat's Issues

Alternate clause layouts

I feel like it might be a good idea to experiment with using smallvec in the definition of Clause.

Alternately, I wonder if it is possible define a custom unsized type in Rust so that we can layout the clause literals inline with a header.

Default Citation

Could you add what should be cited in the readme? Here is the bibtex entry I currently use, but it might not be optimal:

@mastersthesis{creusat,
  author       = {Skotåm, Sarek Høverstad},
  title	       = {{CreuSAT}, Using {Rust} and {Creusot} to create the
                  world’s fastest deductively verified {SAT} solver},
  school       = {University of Oslo},
  year	       = {2022},
  url	       =
                  {https://www.duo.uio.no/handle/10852/96757},
}

Thank you very much

Include`ide` script in repo

Running cargo make p crashes for me since it uses a hardcoded path for the why3 ide script. It would be nice to include the script locally. This may also require copying prelude/ from Creusot (until we can figure out how to distribute it with the binary / crate).

Set up CI

It would be a good idea to set up a simple CI script that ensures the proofs are not obsolete (without even running them). This would avoid much risk of breakage.

[CreuSAT] restart heuristic

Is it expected that the fast and slow heuristic have the same initial value in CreuSAT?

    pub fn new(f: &Formula) -> Solver {
        Solver {
            num_lemmas: 0,
            max_lemmas: 2000,
            num_conflicts: 0,
            initial_len: f.clauses.len(),
            inc_reduce_db: 300,
            fast: 16777216, // 1 << 24
            slow: 16777216, // 1 << 24
            perm_diff: vec::from_elem(0, f.num_vars),
        }
    }

That seems odd (and a good way to never restart actually).

Thesis Typo: Lit Struct in Section 3.3

Excellent project and thesis! Although I'm not finished reading it :)

I think there's a minor typo for Lit struct in section 3.3. You define Lit as having a polarity bool. But this is subsequently changed to value in later snippets. Changing it value should fix things.

Screenshot 2024-07-15 at 2 59 33 PM

Use bump / arena allocator

I wonder how much time could be gained by having all formula data stored using arenas. We should investigate using bumpalo for this.

Remove runtime checks

Rather self-explanatory, but taking the time to eliminate all runtime checks would be very beneficial to the proof itself.

Use as a Crate? | Adding a Rust API?

Thank you! I love any progress in the Rust SAT space. varisat has an api witch I have used extensively for testing libraries I work on. Would you be interested in adding an Rust API interface to CreuSAT?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.