pub mod alg_struct;
mod check_model;
mod colimit;
pub mod composition;
mod eq;
mod error;
mod factorize;
mod free_model;
mod ident;
mod model;
mod morphism;
mod nat_transform;
mod op;
mod pullback;
mod quotient;
pub mod refinement;
pub mod rewriting;
mod schema_functor;
mod sort;
mod theory;
mod typecheck;
pub mod witness;
pub use check_model::{
CheckModelOptions, EquationViolation, check_model, check_model_with_options,
};
pub use colimit::{ColimitResult, colimit, colimit_by_name};
pub use composition::{CompositionSpec, CompositionStep, recompose};
pub use factorize::{Factorization, factorize, validate_factorization};
pub use eq::{
CaseBranch, DirectedEquation, Equation, Term, alpha_equivalent, alpha_equivalent_equation,
compose_subst, match_pattern, normalize,
};
pub use error::GatError;
pub use free_model::{FreeModelConfig, FreeModelResult, free_model};
pub use ident::{Ident, Name, NameSite, ScopeTag, SiteRename};
pub use model::{Model, ModelValue, migrate_model};
pub use morphism::{TheoryMorphism, check_morphism};
pub use nat_transform::{
NaturalTransformation, check_interchange, check_natural_transformation, horizontal_compose,
vertical_compose,
};
pub use op::{Implicit, Operation};
pub use pullback::{PullbackResult, pullback};
pub use quotient::quotient;
pub use schema_functor::{TheoryConstraint, TheoryEndofunctor, TheoryTransform};
pub use sort::{
CoercionClass, Sort, SortClosure, SortExpr, SortKind, SortParam, ValueKind,
classify_builtin_coercion, positional_param_rename, signatures_equivalent_modulo_param_rename,
sort_params_equivalent_modulo_rename,
};
pub use theory::{ConflictPolicy, ConflictStrategy, Theory, resolve_theory, th_editable_structure};
pub use typecheck::{
HoleReport, SortScheme, VarContext, infer_var_sorts, typecheck_equation,
typecheck_equation_modulo_rewrites, typecheck_term, typecheck_term_with_holes,
typecheck_theory,
};
pub use alg_struct::{AlgStruct, StructField, StructParam};
pub use refinement::{RefinedSort, RefinementConstraint, RefinementError};
pub use rewriting::{
ConfluenceReport, CriticalPair, OpPrecedence, RuleViolation, TerminationReport,
check_local_confluence, check_termination_via_lpo, lpo_greater,
};
pub use witness::{EqWitness, WitnessJustification};