Skip to main content

rosetta_aisp/
lib.rs

1//! # rosetta-aisp
2//!
3//! Bidirectional prose ↔ AISP symbolic notation conversion based on the Rosetta Stone mappings.
4//!
5//! This crate provides deterministic, lossless conversion between natural language prose
6//! and AISP (AI Symbolic Programming) notation based on the AISP 5.1 Σ_512 glossary specification.
7//!
8//! ## Features
9//!
10//! - **Rosetta Stone mappings**: 70+ symbol mappings for quantifiers, logic, sets, types, and more
11//! - **3-tier conversion**: Minimal, Standard, and Full conversion levels
12//! - **Round-trip support**: Convert prose → AISP → prose with semantic preservation
13//! - **Anti-drift guarantees**: Symbols maintain consistent meaning through conversions
14//!
15//! ## Quick Start
16//!
17//! ```rust
18//! use rosetta_aisp::{RosettaStone, AispConverter, ConversionTier};
19//!
20//! // Simple prose to AISP conversion
21//! let (aisp, confidence, unmapped) = RosettaStone::convert("for all x in S");
22//! assert!(aisp.contains("∀"));
23//! assert!(aisp.contains("∈"));
24//!
25//! // Convert back to prose
26//! let prose = RosettaStone::to_prose(&aisp);
27//! assert!(prose.contains("for all"));
28//!
29//! // Full document conversion with auto tier detection
30//! let result = AispConverter::convert("Define a type User with id and name", None);
31//! println!("Tier: {}", result.tier);
32//! println!("Output: {}", result.output);
33//! ```
34//!
35//! ## Conversion Tiers
36//!
37//! - **Minimal**: Direct symbol substitution only (0.5-1x tokens)
38//! - **Standard**: Adds header, metadata, and evidence blocks (1.5-2x tokens)
39//! - **Full**: Complete AISP document with types, rules, and proofs (4-8x tokens)
40
41mod converter;
42mod rosetta;
43
44pub use converter::{
45    AispConverter, ConversionOptions, ConversionResult, ConversionTier, TokenStats,
46};
47pub use rosetta::{
48    get_all_categories, get_mapping_count, prose_to_symbol, symbol_to_prose, symbols_by_category,
49    CompiledRosettaEntry, RosettaEntry, RosettaStone, ROSETTA, ROSETTA_COMPILED, ROSETTA_SORTED,
50};
51
52/// Prelude for convenient imports
53pub mod prelude {
54    pub use crate::converter::{
55        AispConverter, ConversionOptions, ConversionResult, ConversionTier, TokenStats,
56    };
57    pub use crate::rosetta::{prose_to_symbol, symbol_to_prose, RosettaStone};
58}