← all suites

trig

Trigonometric identities (demo)

A small public demo suite: Pythagorean and double-angle identities, inverse functions composed with their functions (true only on the principal range), and periodicity. Official vocabulary only.

licence CC0-1.0

Categories
identities
Algebraic trigonometric identities over the reals or complexes, and where they fail (sqrt of a square).
inverse
asin(sin x) = x and friends: true exactly on the principal range of the inverse.
periodicity
Shifts by multiples of pi: periods, half-periods, and where a shifted value coincides.

official cases as LaTeX (.tex)

Case set 7a1dcfa636ed — latest run per system

One column per CAS: the best of its routines (wrong if any is wrong, else solved if any solved it, else declined correctly if any did); +N shows the routines, older older versions. Click a category to see its cases.

show expected
category / casesympy best wolfram best
identities 53/53/5
inverse 40/43/4
periodicity 41/41/4
total4/137/13
wrong00
declined correctly55

Each cell shows what the system said, coloured by outcome: true ✓ solved, true ✗ wrong, no verdict: the system ran but did not commit to true or false (null); no verdict ✓ (grey ✓, on a contingent case) declined correctly: Correct: neither true nor false holds here. Not counted as solved, since a system that never answers would get this too.

Older case sets (2)

Case set 1e4dbd2f7d86 — latest run per system

One column per CAS: the best of its routines (wrong if any is wrong, else solved if any solved it, else declined correctly if any did); +N shows the routines, older older versions. Click a category to see its cases.

always-none, sympy-ask, sympy-refine, sympy-simplify, wolfram-fullsimplify, wolfram-refine, wolfram-simplify: old report format (graded with a combined score): its nulls are shown as no verdict, because an old report cannot tell a correct decline on a contingent case from no verdict

show expected
category / casesympy best wolfram best
identities 53/53/5
inverse 40/43/4
periodicity 41/41/4
total4/137/13
wrong00
declined correctly00

Each cell shows what the system said, coloured by outcome: true ✓ solved, true ✗ wrong, no verdict: the system ran but did not commit to true or false (null); no verdict ✓ (grey ✓, on a contingent case) declined correctly: Correct: neither true nor false holds here. Not counted as solved, since a system that never answers would get this too.

Case set 45d6b9056f06 — latest run per system

One column per CAS: the best of its routines (wrong if any is wrong, else solved if any solved it, else declined correctly if any did); +N shows the routines, older older versions. Click a category to see its cases.

always-none, sympy-ask, sympy-refine, sympy-simplify, wolfram-fullsimplify, wolfram-refine, wolfram-simplify: old report format (graded with a combined score): its nulls are shown as no verdict, because an old report cannot tell a correct decline on a contingent case from no verdict

show expected
category / casesympy best wolfram best
identities 53/53/5
inverse 40/43/4
periodicity 41/41/4
total4/137/13
wrong00
declined correctly00

Each cell shows what the system said, coloured by outcome: true ✓ solved, true ✗ wrong, no verdict: the system ran but did not commit to true or false (null); no verdict ✓ (grey ✓, on a contingent case) declined correctly: Correct: neither true nor false holds here. Not counted as solved, since a system that never answers would get this too.

All runs of this suite (21, official cases)
whensystemversion · mode · machinedialectcase setsolvedwrongdeclined correctlyno verdicttimeoutunsupported
2026-10-13 17:21:15wolfram-fullsimplify 14.3.0 · fork · pi5wolfram7a1dcfa636ed705100
2026-10-13 17:21:12wolfram-refine 14.3.0 · fork · pi5wolfram7a1dcfa636ed505300
2026-10-13 17:21:08wolfram-simplify 14.3.0 · fork · pi5wolfram7a1dcfa636ed705100
2026-10-13 17:21:07sympy-simplify1.14.0 · fork · pi5sympy7a1dcfa636ed405400
2026-10-13 17:21:06sympy-refine1.14.0 · fork · pi5sympy7a1dcfa636ed105700
2026-10-13 17:21:03always-nonepi5sexp7a1dcfa636ed005800
2026-10-13 17:21:03sympy-ask1.14.0 · fork · pi5sympy7a1dcfa636ed105700
2026-10-13 16:39:24wolfram-fullsimplify 14.3.0 · fork · pi5wolfram1e4dbd2f7d86700600 old report
2026-10-13 16:39:21wolfram-refine 14.3.0 · fork · pi5wolfram1e4dbd2f7d86500800 old report
2026-10-13 16:39:18wolfram-simplify 14.3.0 · fork · pi5wolfram1e4dbd2f7d86700600 old report
2026-10-13 16:39:17sympy-simplify1.14.0 · fork · pi5sympy1e4dbd2f7d86400900 old report
2026-10-13 16:39:16sympy-refine1.14.0 · fork · pi5sympy1e4dbd2f7d861001200 old report
2026-10-13 16:39:13always-nonepi5sexp1e4dbd2f7d860001300 old report
2026-10-13 16:39:13sympy-ask1.14.0 · fork · pi5sympy1e4dbd2f7d861001200 old report
2026-10-12 20:21:54wolfram-fullsimplify 14.3.0 · fork · pi5wolfram45d6b9056f06700600 old report
2026-10-12 20:21:51wolfram-refine 14.3.0 · fork · pi5wolfram45d6b9056f06500800 old report
2026-10-12 20:21:48always-nonepi5sexp45d6b9056f060001300 old report
2026-10-12 20:21:48wolfram-simplify 14.3.0 · fork · pi5wolfram45d6b9056f06700600 old report
2026-10-12 20:21:47sympy-simplify1.15.0.dev · fork · pi5sympy45d6b9056f06400900 old report
2026-10-12 20:21:45sympy-refine1.15.0.dev · fork · pi5sympy45d6b9056f061001200 old report
2026-10-12 20:21:44sympy-ask1.15.0.dev · fork · pi5sympy45d6b9056f061001200 old report