chomsky-rules 0.0.0

Optimization rules collection for Chomsky framework
Documentation

chomsky-rules

Optimization rules collection for the Chomsky framework.

Overview

chomsky-rules is a library of predefined rewrite rules for the Chomsky framework. It contains common algebraic simplifications, constant folding logic, and architectural transformations that can be plugged into the chomsky-rule-engine.

Features

  • Constant Folding: Pre-calculates constant expressions (e.g., 1 + 2 => 3).
  • Algebraic Simplification: Implements common identities (e.g., x + 0 => x, x * 1 => x, x - x => 0).
  • Boolean Logic: Simplifies boolean expressions and conditional branches.
  • Architectural Rules: Provides rules for mapping generic operations to optimized hardware-specific forms.

Core Rules

  • ConstantFolding: Handles basic arithmetic operations on constant values.
  • AlgebraicSimplification: Applies mathematical identities to reduce program complexity.

Usage

use chomsky_rules::{ConstantFolding, AlgebraicSimplification};
use chomsky_rule_engine::{RewriteRegistry, RuleCategory};
use chomsky_uir::EGraph;

let mut registry = RewriteRegistry::new();
registry.register(RuleCategory::Algebraic, Box::new(ConstantFolding));
registry.register(RuleCategory::Algebraic, Box::new(AlgebraicSimplification));