{"id":"regression-normal-equations-check","version":"1.0.0","description":"Check that claimed coefficients and residuals satisfy X^T e = 0 exactly; rejects singular, ambiguous designs.","supported_operations":["verify normal equations of a regression","check that residuals are orthogonal to the design matrix","prove a least squares fit is optimal","validate X transpose residual equals zero","check optimality certificate of a regression","verify least squares solution without refitting","אימות משוואות נורמליות של רגרסיה"],"unsupported_operations":["computing the coefficients (use regression-coefficients-check)","constrained or regularized least squares","approximate optimality within a tolerance","weighted normal equations"],"semantics":["Reference: NIST/SEMATECH e-Handbook of Statistical Methods sec. 4.1.4.1 and 4.4.3.1 (ordinary least squares, normal equations); exact rational arithmetic.","Model (NIST e-Handbook 4.1.4.1): y_i = sum_j beta_j X_ij + e_i; X has a leading column of ones when intercept is true (required, no default), then the x features in order; coefficient 0 is the intercept when present.","Values are exact strings: integer, decimal (\"3.5\") or fraction (\"7/2\"), never JSON numbers or exponents; comparisons are exact and outputs canonical reduced fractions. difference = claimed - actual.","Ragged rows, len(y) != rows or empty x are invalid_input; a claimed vector of the wrong length is valid:false dimension_mismatch, checked first.","Rank is exact; dependent_column is the first column of X that is a combination of earlier columns. rank < k (including fewer samples than columns) is singular_design: the least-squares coefficients are not unique.","The certificate is optimal exactly when X^T e = 0 (the normal equations X^T X beta = X^T y, NIST e-Handbook 4.4.3.1).","Check order: coefficient count, residual count, residuals in sample order (residual_mismatch), normal equations in column order (normal_equation_violated with the exact (X^T e)_j), then rank (singular_design: a least-squares solution, but not the unique one). gradient is X^T e for the claimed coefficients, or null when the coefficient count is wrong.","Limits: 256 samples, 8 features, 30 digits per sample value, 1000 digits per claimed value, 9 claimed coefficients, 256 claimed residuals, and common denominators of at most 100 digits for the x values and for the y values and 1000 digits for the claimed coefficients; over a limit is limit_exceeded."],"limits":{"max_samples":256,"max_features":8,"max_sample_digits":30,"max_claim_digits":1000,"max_data_denominator_digits":100,"max_claim_denominator_digits":1000},"pricing":{"status":"unpriced","charge_usd":null},"input_schema":{"type":"object","additionalProperties":false,"required":["x","y","intercept","coefficients","residuals"],"properties":{"x":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"array","minItems":1,"maxItems":8,"items":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(\\.[0-9]+|/[1-9][0-9]*)?$"}}},"y":{"type":"array","minItems":1,"maxItems":256,"items":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(\\.[0-9]+|/[1-9][0-9]*)?$"}},"intercept":{"type":"boolean"},"coefficients":{"type":"array","maxItems":9,"items":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(\\.[0-9]+|/[1-9][0-9]*)?$"}},"residuals":{"type":"array","maxItems":256,"items":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(\\.[0-9]+|/[1-9][0-9]*)?$"}}}},"output_schema":{"type":"object","additionalProperties":false,"required":["valid","reason","rank","gradient","first_discrepancy","reference_version"],"properties":{"valid":{"type":"boolean"},"reason":{"type":["string","null"],"enum":[null,"dimension_mismatch","residual_mismatch","normal_equation_violated","singular_design"]},"rank":{"type":"integer","minimum":0},"gradient":{"type":["array","null"],"items":{"type":"string","pattern":"^-?(0|[1-9][0-9]*)(/[1-9][0-9]*)?$"}},"first_discrepancy":{"type":["object","null"],"additionalProperties":false,"required":["check","index","claimed","actual","difference","expected_length","claimed_length","rank","dependent_column"],"properties":{"check":{"type":"string","enum":["dimensions","residuals","normal_equations","rank"]},"index":{"type":["integer","null"],"minimum":0},"claimed":{"type":["string","null"]},"actual":{"type":["string","null"]},"difference":{"type":["string","null"]},"expected_length":{"type":["integer","null"],"minimum":0},"claimed_length":{"type":["integer","null"],"minimum":0},"rank":{"type":["integer","null"],"minimum":0},"dependent_column":{"type":["integer","null"],"minimum":0}}},"reference_version":{"type":"string","const":"NIST/SEMATECH e-Handbook of Statistical Methods sec. 4.1.4.1 and 4.4.3.1 (ordinary least squares, normal equations); exact rational arithmetic"}}},"examples":[{"input":{"x":[["1"],["2"],["3"],["4"]],"y":["6","5","7","10"],"intercept":true,"coefficients":["3.5","1.4"],"residuals":["1.1","-1.3","-0.7","0.9"]},"output":{"valid":true,"reason":null,"rank":2,"gradient":["0","0"],"first_discrepancy":null,"reference_version":"NIST/SEMATECH e-Handbook of Statistical Methods sec. 4.1.4.1 and 4.4.3.1 (ordinary least squares, normal equations); exact rational arithmetic"}},{"input":{"x":[["1"],["2"],["3"],["4"]],"y":["6","5","7","10"],"intercept":true,"coefficients":["3","1.5"],"residuals":["1.5","-1","-0.5","1"]},"output":{"valid":false,"reason":"normal_equation_violated","rank":2,"gradient":["1","2"],"first_discrepancy":{"check":"normal_equations","index":0,"claimed":"0","actual":"1","difference":null,"expected_length":null,"claimed_length":null,"rank":null,"dependent_column":null},"reference_version":"NIST/SEMATECH e-Handbook of Statistical Methods sec. 4.1.4.1 and 4.4.3.1 (ordinary least squares, normal equations); exact rational arithmetic"}}],"execute_url":"/v1/tools/regression-normal-equations-check/versions/1.0.0/execute"}