rust_lstar/lib.rs
1//! Rust implementation of the L* active automata learning algorithm.
2//!
3//! This crate provides:
4//! - Core automata data structures (`Automata`, `State`, `Transition`)
5//! - Knowledge base abstractions for answering membership queries
6//! - Multiple equivalence-test strategies
7//! - An `LSTAR` learner that infers Mealy-style automata from observations
8
9/// Automata model and DOT import/export helpers.
10pub mod automata;
11/// Equivalence-test strategies used by the learner.
12pub mod eqtest;
13/// Knowledge-base traits and implementations for query resolution.
14pub mod knowledge_base;
15/// Letter/symbol representation.
16pub mod letter;
17/// Main L* learner implementation.
18pub mod lstar;
19/// Observation-table implementation used by L*.
20pub mod observation_table;
21/// Query data model.
22pub mod query;
23/// Word abstraction built from letters.
24pub mod word;
25// `automata` now contains `state`, `transition`, and `dot_parser` submodules
26
27/// Deterministic transducer representation.
28pub use automata::Automata;
29/// Automaton state.
30pub use automata::State;
31/// Automaton transition.
32pub use automata::Transition;
33/// Parse a DOT graph into an [`Automata`].
34pub use automata::{build_dot_code, parse_dot};
35/// BDist equivalence testing strategy.
36pub use eqtest::BDistMethod;
37/// Trait implemented by equivalence testing strategies.
38pub use eqtest::EquivalenceTest;
39/// Composition of multiple equivalence testing strategies.
40pub use eqtest::MultipleEqtests;
41/// Random-walk equivalence testing strategy.
42pub use eqtest::RandomWalkMethod;
43/// W-method equivalence testing strategy.
44pub use eqtest::WMethodEQ;
45/// Alias for [`WMethodEQ`].
46pub use eqtest::WpMethodEQ;
47/// Default caching knowledge base.
48pub use knowledge_base::KnowledgeBase;
49/// Knowledge tree data structures used by knowledge bases.
50pub use knowledge_base::{KnowledgeNode, KnowledgeTree};
51/// Letter model and empty-letter marker.
52pub use letter::{EmptyLetter, Letter};
53/// L* learner entry point.
54pub use lstar::LSTAR;
55/// Observation table used by the learner.
56pub use observation_table::ObservationTable;
57/// Membership query structure.
58pub use query::OutputQuery;
59/// Word model.
60pub use word::Word;