b2KIT

Trig Identity Verifier

Enter two trigonometric expressions and verify identity by graphical comparison and numerical sampling across domains.

Tested tool guide Tested browser tools Checked August 16, 2026

What Trig Identity Verifier does, with a checked example

Enter two trigonometric expressions and this tool answers one question: do they describe the same function? It plots both curves on the same axes over the domain you choose, then evaluates the two expressions side by side at a grid of sample points and reports the largest absolute difference between them. The surprise most users hit: a clean match is strong evidence, not a proof. Sampling can never rule out two functions that agree at every sampled point yet differ in between, so a passing result means 'no counterexample found', while a failing one is definitive.

Worked example

A concrete input and expected output from the current implementation.

Input

LHS: sin(x)^2 + cos(x)^2   RHS: 1   domain: [0, 2*pi]

Expected output

Every sampled point matches: the largest |LHS - RHS| is about 1e-16, at the limit of double-precision arithmetic, and the two curves overlay exactly across [0, 2*pi]. Verdict: the identity holds on this domain.

sin(x)^2 + cos(x)^2 = 1 is the Pythagorean identity, true for every real x. Floating-point evaluation of both sides lands within 1e-16 of equality at every sample, so both the graphical and the numerical checks return the tool's cleanest possible pass.

How the result is produced

1

What happens when you verify

Each expression is parsed as a function of x: sin(x), cos(x), tan(x) and the other standard trig functions are available, powers use ^, and multiplication uses *. The tool then evaluates both expressions across your chosen domain, draws the two curves on one set of axes, and computes LHS - RHS at every point of its sampling grid, keeping the largest absolute difference and the x value where it occurs.

2

Why a pass is not a proof

The comparison is numerical. Each sample is a floating-point evaluation, and values that agree within a small tolerance count as a match, so the verdict depends on the grid and the tolerance. Two distinct functions can coincide at every sampled point and diverge between them, and agreement over a bounded interval says nothing about x outside it. A symbolic proof engine would be needed to establish equality for all x.

Good uses

  • Checking a candidate rewrite - a double-angle, sum-to-product, or half-angle conversion - before you build a homework or exam solution on it.
  • Deciding whether two differently shaped answers to the same problem, such as 2*sin(x)*cos(x) and sin(2*x), are actually the same function.
  • Hunting a sign error or misapplied identity in a trig simplification you wrote into code or a proof draft.

Limits and checks

  • A pass is evidence, not proof. A finite grid cannot detect two functions that agree at every sample yet differ in between, and agreement on [0, 2*pi] says nothing about other intervals. Treat a pass as 'no counterexample found'.
  • Undefined points distort the comparison. If either expression hits a pole or divides by zero - tan(x) at pi/2, say - the sample there is meaningless, and identities that hold only on a common domain (tan(x)*cos(x) = sin(x)) can look like failures.
  • Syntax slips change the expressions. A missing parenthesis, or writing 2x and sin x when the parser expects 2*x and sin(x), silently changes what is being compared; reread the rendered expressions before trusting a 'not an identity' verdict.

Common questions

If the tool says the two expressions match, is the identity proven?

No. The check is finite sampling over a bounded interval, which can only produce a counterexample, never rule all of them out. A match means no disagreement appeared at hundreds of points, which is strong evidence but not a proof. To establish an identity for every x, you still need an algebraic derivation.

Why does the tool report a failure for an identity my textbook lists as true?

Start at the point of largest difference. Usually one of three things is wrong: the expressions differ where one is undefined (the poles of tan(x) in tan(x)*cos(x) = sin(x)), the input was parsed differently than you intended, or the domain choice crosses a point where a rewritten form changes behavior. Compare the two curves there.

References and verification

The example and behavioral notes were checked against the browser implementation. Standards and primary references below define the relevant format, formula, or platform behavior.

Related Tools