View Source Ash.SatSolver (ash v3.3.0)
Tools for working with the satsolver that drives filter subset checking (for authorization)
Summary
Functions
Creates tuples of a boolean statement.
Returns b(not (left and right))
Returns b(not (left and not right))
Returns a statement expressing that the predicates are mutually exclusive.
Returns a statement expressing that the predicates are mutually exclusive and collectively exhaustive.
Returns a statement expressing that the predicates are mutually inclusive
Returns b(not (right and left))
Returns b(not (right and not left))
Returns true if the candidate filter returns the same or less data than the filter
Returns true
if the relationship paths are synonymous from a data perspective
Transforms a statement to Conjunctive Normal Form(CNF), as lists of lists of integers.
Prepares a filter for comparison
Calls transform/2
and solves the expression
Remaps integers back to clauses
Functions
Creates tuples of a boolean statement.
i.e b(1 and 2) #=> {:and, 1, 2}
Returns b(not (left and right))
Returns b(not (left and not right))
Returns a statement expressing that the predicates are mutually exclusive.
Returns a statement expressing that the predicates are mutually exclusive and collectively exhaustive.
Returns a statement expressing that the predicates are mutually inclusive
Returns b(not (right and left))
Returns b(not (right and not left))
Returns true if the candidate filter returns the same or less data than the filter
synonymous_relationship_paths?(left_resource, candidate, search, right_resource \\ nil)
View SourceReturns true
if the relationship paths are synonymous from a data perspective
Transforms a statement to Conjunctive Normal Form(CNF), as lists of lists of integers.
Prepares a filter for comparison
Calls transform/2
and solves the expression
Remaps integers back to clauses