Skip to content

Theory propegation requirements #16

@dewert99

Description

@dewert99

As I thinking about batsats non-chronological backtracking with theory propagation I started wondering what requirements the theory propagation had, eg. "a theories explanation of a propagated literal must contain a literal from the level the propagation happened ", or "a theory must not propagate a literal that was falsified at a level earlier than the current level". As an experiment I created OddTheory<Th> that wraps a theory causing to only propagate add odd decision levels (see below), and ran the sudoku tests using it. This gave

thread 'main' panicked at /home/dewert/Repos/batsat/src/batsat/src/core.rs:1406:21:
possible cycle in conflict graph between -43 and -43
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
16a17,542

Either this is a bug in the sudoku solver, or delaying propagation should not be allowed. I'm not sure how hard/costly (runtime) this would be to fix, but it would be nice to have the propagation requirements documented.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions