Skip to main content

Module ast

Module ast 

Source

Re-exports§

pub use declaration::DeclarationKind;
pub use declaration::DeclarationPtr;
pub use eval::generator_values_from_expr;
pub use eval::eval_constant;
pub use eval::eval_constant_local;
pub use eval::finish_root_evaluator_normalisation;
pub use eval::normalise_evaluator_local;
pub use eval::normalise_root_constraint_deep;
pub use eval::normalise_root_constraints_deep;
pub use eval::normalise_root_constraints_local;
pub use eval::normalise_root_selective_deep_expr;
pub use records::Field;

Modules§

ac_operators
assertions
Debug-only structural assertions for AST/model integrity.
categories
comprehension
declaration
eval
matrix
Utility functions for working with matrices.
pretty
Functions for pretty printing Conjure models.
records
serde
Serde serialization/ deserialization helpers.

Structs§

CnfClause
DecisionVariable
Represents a decision variable within a computational model.
ExprInfo
A struct for the information about expressions
ExpressionArena
Arena-backed representation of an Expression tree.
ExpressionNodeId
Stable handle for an expression node stored in an ExpressionArena.
FuncAttr
MSetAttr
Metadata
Per-expression metadata used for typing, source mapping, and runtime caches.
Model
An Essence model.
Moo
A clone-on-write, reference counted pointer to an AST type.
Objective
A single-objective optimisation statement.
PartitionAttr
PermutationAttr
A permutation is inherently total and bijective by definition, so unlike partition or function, its only attribute is a size constraint on numMoved, the number of moved points (i.e. the points not fixed by the permutation) – confirmed against real Conjure’s own numMoved/minNumMoved/maxNumMoved keywords (real Conjure does not accept size/minSize/maxSize here, unlike set/relation/etc).
Reference
A reference to a declaration (variable, parameter, etc.)
RelAttr
SequenceAttr
SerdeModel
A model that is de/serializable using serde.
SetAttr
SymbolTable
The global symbol table, mapping names to their definitions.
SymbolTablePtr

Enums§

AbstractLiteral
Atom
An Atom is an indivisible expression, such as a literal or a reference.
BinaryAttr
Domain
Variants are ordered from fully resolved to unresolved; keep broad matches in this order.
DomainOpError
An error thrown by an operation on domains.
Expression
Represents different types of expressions used to define rules and constraints in the model.
GroundDomain
Variants use the project-wide type/domain ordering; keep broad matches in the same order.
IntVal
A variable or expression appearing inside an int range of an unresolved domain; E.g int(1..x), int(2, 4..(2*y)), set (minSize x) of int(1..5), etc
JectivityAttr
Literal
A literal value, equivalent to constants in Conjure.
Name
A reference to an object stored in the [SymbolTable].
OptimiseDirection
Whether an objective is minimised or maximised.
PartialityAttr
Range
ReturnType
Variants use the project-wide type/domain ordering; keep broad matches in the same order.
SATIntEncoding
UnresolvedDomain
Variants use the project-wide type/domain ordering; keep broad matches in the same order.

Constants§

OXIDE_INT_MAX
Upper bound of the default fully-bounded integer domain used by Conjure Oxide.
OXIDE_INT_MIN
Lower bound of the default fully-bounded integer domain used by Conjure Oxide.

Traits§

HasDomain
Types that have a Domain.
Typeable
Guaranteed to always typecheck

Functions§

discriminant_from_value
domain_has_int_from_values
Whether domain takes its values from a collection expression anywhere inside it.
print_hash_stats
run_partial_evaluator
run_partial_evaluator_local
Partially evaluates expr using only information already available at the focused node.
try_lower_bool_atom_eq_true
Rewrites x = true / true = x to x when x is a non-literal boolean atom.

Type Aliases§

DomainPtr