Chalk engine

The chalk-engine crate is the core PROLOG-like solver for logical predicates. Importantly, it is very general and not specific to Rust, Rust types, or Rust logic.

Implemented PROLOG concepts

The engine implements the following PROLOG logic concepts. Some of these have been published on previously, and some are Chalk-specific. This isn't necessarily an exhaustive list:

  • Basic logic
  • Negation
  • Floundering
  • Coinductive solving

Note

Throughout most of this chapter, the specifics in regards to Canonicalization and UCanonicalization are avoided. These are important concepts to understand, but don't particularly help to understand how chalk-engine works. In a few places, it may be highlighted if it is important.