pub mod alg_struct;
mod check_model;
mod colimit;
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;
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::colimit;
pub use factorize::{Factorization, factorize, validate_factorization};
pub use eq::{
DirectedEquation, Equation, Term, alpha_equivalent, alpha_equivalent_equation, match_pattern,
normalize,
};
pub use error::GatError;
pub use free_model::{FreeModelConfig, 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::Operation;
pub use pullback::{PullbackResult, pullback};
pub use quotient::quotient;
pub use schema_functor::{TheoryConstraint, TheoryEndofunctor, TheoryTransform};
pub use sort::{Sort, SortKind, SortParam, ValueKind};
pub use theory::{ConflictPolicy, ConflictStrategy, Theory, resolve_theory, th_editable_structure};
pub use typecheck::{
VarContext, infer_var_sorts, typecheck_equation, typecheck_term, typecheck_theory,
};
pub use alg_struct::{AlgStruct, StructField, StructParam};
pub use refinement::{RefinedSort, RefinementConstraint, RefinementError};
pub use witness::{EqWitness, WitnessJustification};