├── .github └── workflows │ ├── grcov.yml │ └── rust.yml ├── .gitignore ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT ├── README.md ├── examples ├── diseq.rs ├── easy-zebra.rs ├── hard-zebra.rs ├── medium-zebra.rs ├── n-queens.rs ├── simple.rs ├── sudoku.rs └── tree-nodes.rs ├── macros ├── Cargo.toml ├── LICENSE-APACHE ├── LICENSE-MIT └── src │ └── lib.rs └── src ├── compound.rs ├── debugger ├── mod.rs └── ui.rs ├── engine.rs ├── goal.rs ├── lib.rs ├── lresult.rs ├── lterm.rs ├── lvalue.rs ├── operator ├── anyo.rs ├── closure.rs ├── conda.rs ├── conde.rs ├── condu.rs ├── conj.rs ├── dfs.rs ├── disj.rs ├── everyg.rs ├── fngoal.rs ├── fresh.rs ├── matcha.rs ├── matche.rs ├── matchu.rs ├── mod.rs ├── onceo.rs └── project.rs ├── query.rs ├── relation ├── always.rs ├── append.rs ├── clpfd │ ├── diseqfd.rs │ ├── distinctfd.rs │ ├── domfd.rs │ ├── infd.rs │ ├── ltefd.rs │ ├── ltfd.rs │ ├── minusfd.rs │ ├── mod.rs │ ├── plusfd.rs │ └── timesfd.rs ├── clpz │ ├── mod.rs │ ├── plusz.rs │ └── timesz.rs ├── cons.rs ├── diseq.rs ├── distinct.rs ├── empty.rs ├── eq.rs ├── fail.rs ├── first.rs ├── member.rs ├── member1.rs ├── mod.rs ├── never.rs ├── permute.rs ├── rember.rs ├── rest.rs └── succeed.rs ├── solver.rs ├── state ├── constraint │ ├── mod.rs │ └── store.rs ├── fd.rs ├── map_sum.rs ├── mod.rs ├── reification.rs ├── substitution.rs └── unification.rs ├── stream.rs └── user.rs /.github/workflows/grcov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/.github/workflows/grcov.yml -------------------------------------------------------------------------------- /.github/workflows/rust.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/.github/workflows/rust.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/.gitignore -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/LICENSE-APACHE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/README.md -------------------------------------------------------------------------------- /examples/diseq.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/diseq.rs -------------------------------------------------------------------------------- /examples/easy-zebra.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/easy-zebra.rs -------------------------------------------------------------------------------- /examples/hard-zebra.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/hard-zebra.rs -------------------------------------------------------------------------------- /examples/medium-zebra.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/medium-zebra.rs -------------------------------------------------------------------------------- /examples/n-queens.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/n-queens.rs -------------------------------------------------------------------------------- /examples/simple.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/simple.rs -------------------------------------------------------------------------------- /examples/sudoku.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/sudoku.rs -------------------------------------------------------------------------------- /examples/tree-nodes.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/examples/tree-nodes.rs -------------------------------------------------------------------------------- /macros/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/macros/Cargo.toml -------------------------------------------------------------------------------- /macros/LICENSE-APACHE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/macros/LICENSE-APACHE -------------------------------------------------------------------------------- /macros/LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/macros/LICENSE-MIT -------------------------------------------------------------------------------- /macros/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/macros/src/lib.rs -------------------------------------------------------------------------------- /src/compound.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/compound.rs -------------------------------------------------------------------------------- /src/debugger/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/debugger/mod.rs -------------------------------------------------------------------------------- /src/debugger/ui.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/debugger/ui.rs -------------------------------------------------------------------------------- /src/engine.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/engine.rs -------------------------------------------------------------------------------- /src/goal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/goal.rs -------------------------------------------------------------------------------- /src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/lib.rs -------------------------------------------------------------------------------- /src/lresult.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/lresult.rs -------------------------------------------------------------------------------- /src/lterm.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/lterm.rs -------------------------------------------------------------------------------- /src/lvalue.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/lvalue.rs -------------------------------------------------------------------------------- /src/operator/anyo.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/anyo.rs -------------------------------------------------------------------------------- /src/operator/closure.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/closure.rs -------------------------------------------------------------------------------- /src/operator/conda.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/conda.rs -------------------------------------------------------------------------------- /src/operator/conde.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/conde.rs -------------------------------------------------------------------------------- /src/operator/condu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/condu.rs -------------------------------------------------------------------------------- /src/operator/conj.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/conj.rs -------------------------------------------------------------------------------- /src/operator/dfs.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/dfs.rs -------------------------------------------------------------------------------- /src/operator/disj.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/disj.rs -------------------------------------------------------------------------------- /src/operator/everyg.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/everyg.rs -------------------------------------------------------------------------------- /src/operator/fngoal.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/fngoal.rs -------------------------------------------------------------------------------- /src/operator/fresh.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/fresh.rs -------------------------------------------------------------------------------- /src/operator/matcha.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/matcha.rs -------------------------------------------------------------------------------- /src/operator/matche.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/matche.rs -------------------------------------------------------------------------------- /src/operator/matchu.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/matchu.rs -------------------------------------------------------------------------------- /src/operator/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/mod.rs -------------------------------------------------------------------------------- /src/operator/onceo.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/onceo.rs -------------------------------------------------------------------------------- /src/operator/project.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/operator/project.rs -------------------------------------------------------------------------------- /src/query.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/query.rs -------------------------------------------------------------------------------- /src/relation/always.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/always.rs -------------------------------------------------------------------------------- /src/relation/append.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/append.rs -------------------------------------------------------------------------------- /src/relation/clpfd/diseqfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/diseqfd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/distinctfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/distinctfd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/domfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/domfd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/infd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/infd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/ltefd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/ltefd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/ltfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/ltfd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/minusfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/minusfd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/mod.rs -------------------------------------------------------------------------------- /src/relation/clpfd/plusfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/plusfd.rs -------------------------------------------------------------------------------- /src/relation/clpfd/timesfd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpfd/timesfd.rs -------------------------------------------------------------------------------- /src/relation/clpz/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpz/mod.rs -------------------------------------------------------------------------------- /src/relation/clpz/plusz.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpz/plusz.rs -------------------------------------------------------------------------------- /src/relation/clpz/timesz.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/clpz/timesz.rs -------------------------------------------------------------------------------- /src/relation/cons.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/cons.rs -------------------------------------------------------------------------------- /src/relation/diseq.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/diseq.rs -------------------------------------------------------------------------------- /src/relation/distinct.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/distinct.rs -------------------------------------------------------------------------------- /src/relation/empty.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/empty.rs -------------------------------------------------------------------------------- /src/relation/eq.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/eq.rs -------------------------------------------------------------------------------- /src/relation/fail.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/fail.rs -------------------------------------------------------------------------------- /src/relation/first.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/first.rs -------------------------------------------------------------------------------- /src/relation/member.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/member.rs -------------------------------------------------------------------------------- /src/relation/member1.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/member1.rs -------------------------------------------------------------------------------- /src/relation/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/mod.rs -------------------------------------------------------------------------------- /src/relation/never.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/never.rs -------------------------------------------------------------------------------- /src/relation/permute.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/permute.rs -------------------------------------------------------------------------------- /src/relation/rember.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/rember.rs -------------------------------------------------------------------------------- /src/relation/rest.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/rest.rs -------------------------------------------------------------------------------- /src/relation/succeed.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/relation/succeed.rs -------------------------------------------------------------------------------- /src/solver.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/solver.rs -------------------------------------------------------------------------------- /src/state/constraint/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/constraint/mod.rs -------------------------------------------------------------------------------- /src/state/constraint/store.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/constraint/store.rs -------------------------------------------------------------------------------- /src/state/fd.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/fd.rs -------------------------------------------------------------------------------- /src/state/map_sum.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/map_sum.rs -------------------------------------------------------------------------------- /src/state/mod.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/mod.rs -------------------------------------------------------------------------------- /src/state/reification.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/reification.rs -------------------------------------------------------------------------------- /src/state/substitution.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/substitution.rs -------------------------------------------------------------------------------- /src/state/unification.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/state/unification.rs -------------------------------------------------------------------------------- /src/stream.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/stream.rs -------------------------------------------------------------------------------- /src/user.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/terohuttunen/proto-vulcan/HEAD/src/user.rs --------------------------------------------------------------------------------