import { type Equation, type Expr } from "../expr.js"; import { type BranchingRule, type Rule } from "../rule.js"; type NoParams = Record; /** * Undo a square: a² = b branches into a = √b and a = −√b. Sound because a * true a² = b forces b to be a perfect square of a rational, where √b is * exact; where b is negative the original is false and the branches are * undefined — nothing is claimed. Equalities only; gesture: tap the square. */ export declare const sqrtBothSides: BranchingRule; /** * The zero-product property: a·b·… = 0 branches into a = 0, b = 0, … * (one branch per factor; rationals form an integral domain). Gesture: tap * the product when the other side is zero. */ export declare const zeroProduct: BranchingRule; /** Tap a square root to simplify it: evaluate a perfect square (√9 → 3) or pull * out its largest square factor (√8 → 2√2). Integer radicands only; a * square-free radicand (√7) is already simplest and a negative one has no real * value — neither offers the move. */ export declare const simplifySqrt: Rule; /** Read `a·x² + b·x + c = 0` (one side literal 0, the other an expanded * single-variable quadratic with INTEGER coefficients, a ≠ 0). Each term must * be a monomial cx⁰/cx/cx² — a product (factored) or fractional coefficient is * not recognized (zero-product / clearing denominators come first). */ export declare function readQuadratic(eqn: Equation): { side: Expr; v: string; a: bigint; b: bigint; c: bigint; } | undefined; /** * The quadratic formula: `a·x² + b·x + c = 0` branches into * `x = (−b + √D)/(2a)` and `x = (−b − √D)/(2a)`, `D = b² − 4ac`. An exact * equivalence over a field (a ≠ 0) — emits nothing. The √D is left UNSIMPLIFIED * (a literal radical) so `simplify-sqrt` is the natural follow-up; a perfect * square then collapses to rational roots (so this subsumes factoring), and a * negative D leaves √(negative) — an undefined point, i.e. "no real solution". * Gesture: tap an expanded quadratic that equals zero. */ export declare const quadraticFormula: BranchingRule; export {}; //# sourceMappingURL=quadratics.d.ts.map