fn main() {
println!("=== OxiZ Solver: Quantifier Solving ===\n");
println!("Quantifier solving capabilities:");
println!(" - oxiz_solver::Solver - Main solver interface");
println!(" - oxiz_solver::MBQISolver - Model-based quantifier instantiation");
println!(" - oxiz_core::ast::TermManager::mk_forall - Create universal quantifiers");
println!(" - oxiz_core::ast::TermManager::mk_exists - Create existential quantifiers");
println!("\n--- Quantifier Types ---");
println!(" Universal (∀): ∀x. P(x) - for all x, P(x) holds");
println!(" Existential (∃): ∃x. P(x) - there exists x such that P(x) holds");
println!("\n--- Techniques ---");
println!(" 1. Skolemization: Replace ∃x with fresh Skolem constant");
println!(" 2. MBQI: Model-guided instantiation");
println!(" 3. E-matching: Pattern-based instantiation");
println!(" 4. QE (Quantifier Elimination): Remove quantifiers entirely");
println!("\n--- Decidability ---");
println!(" QF_LIA: Decidable (quantifier-free linear integer arithmetic)");
println!(" LIA: Undecidable in general (with quantifiers)");
println!(" Presburger: Decidable (linear arithmetic without multiplication)");
println!("\nSee the module documentation for detailed usage.");
}