# `Ash.SatSolver`
[🔗](https://github.com/ash-project/ash/blob/v3.27.8/lib/ash/sat_solver.ex#L5)

# `b`
*macro* 

> This macro is deprecated. Use Crux.b/1 instead.

# `left_excludes_right`

> This function is deprecated. Use `Crux.b(nand(left, right))` instead..

# `left_implies_right`

> This function is deprecated. Use `Crux.b(implies(left, right))` instead..

# `mutually_exclusive`

> This function is deprecated. Use `Crux.at_most_one/1` instead..

# `mutually_exclusive_and_collectively_exhaustive`

> This function is deprecated. Use `Crux.exactly_one/1` instead..

# `mutually_inclusive`

> This function is deprecated. Use `Crux.all_or_none/1` instead..

# `right_excludes_left`

> This function is deprecated. Use `Crux.b(nand(left, right))` instead..

# `right_implies_left`

> This function is deprecated. Use `Crux.b(implied_by(left, right))` instead..

# `strict_filter_subset`

> This function is deprecated. Use `Ash.Filter.strict_subset/2` instead..

# `synonymous_relationship_paths?`

> This function is deprecated. Use `Ash.Resource.Info.synonymous_relationship_paths?/4` instead..

# `to_cnf`

> This function is deprecated. Use Crux.Formula.from_expression/1 instead.

# `transform`

> This function is deprecated. Use Ash.Expr.to_sat_expression/2 instead.

# `transform_and_solve`

> This function is deprecated. Use the following instead:

    Ash.Expr.to_sat_expression/2
    |&gt; Crux.Formula.from_expression()
    |&gt; Crux.solve()
.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
