here are several categories of mathematical notation that are especially opaque or hard to track for someone from a computer science background, along with illustrative examples. these represent excellent test cases for stress-testing a referential, programming-inspired notation.
example:
f(x + y) = f(x) + f(y)
problems:
+
may mean real addition, group operation, vector addition, etc.f
might be a morphism, homomorphism, or arbitrary function.example:
∀ε > 0, ∃δ > 0, ∀x, |x - c| < δ ⇒ |f(x) - l| < ε
problems:
x
, c
, f
, l
).example:
∑_{i=1}^{n} a_{ij} b_{jk}
problems:
example:
f: a -> b, g: b -> c, h = g ∘ f
problems:
g ∘ f
) is opposite of evaluation order.example:
(id × f) ∘ δ
problems:
example:
a + b * c^d / e - f
problems:
example:
{x ∈ ℝ | x² < 2}
problems:
|
vs :
varies by source.x² < 2
) is implicit.example:
1 + 2 + ... + n
problems:
...
.example:
let φ: g -> h be a group homomorphism
problems:
φ
, only type.example:
ℒ(x, y), hom(x, y), ⟨x, y⟩, [x]_∼
problems: