Technique Masterclasses

Pure Mathematics 1

Deep Dive: Graph Transformations in Words

Provenance: written 2026-09-29. Sources read for this document: research/veridian/WMA11-verified-facts.md (§1 spec table of contents; §4.1 "Graph transformations"; §6; §7; the graph-transformations-in-words.ts lesson-audit-log entry, lines ~514–611, re-read in full) — grep'd for every "transform", "translat", "stretch", "reflect" and "1.12" hit across the whole file; the live lesson content/veridian/curriculum/wma11/graph-transformations-in-words.ts (all 828 lines, read in full, to avoid duplicating its worked chains, diagrams, MCQs and trap-taxonomy); content/veridian/technique-hub/wma11/signal-topic-brief-graph-transformations-in-words.md (in full); content/veridian/technique-hub/wma11/codex-deep-dive-trig-graphs-period-and-domain.md (in full, to establish the exact scope boundary with its own spec-1.12-on-trig content); content/veridian/technique-hub/wma11/codex-formula-and-method-bank.md §1.1.9 and §2.1.6; content/veridian/technique-hub/wma11/signal-frequency-and-boundaries.md line 30; content/veridian/technique-hub/wma11/signal-examiner-intelligence.md (the relevant line 82–83); content/veridian/technique-hub/wma11/forge-error-pattern-tracker.md lines 51–58; content/veridian/curriculum/wma11/quadratic-functions.ts (grep'd for "transform", plus lines 40–70 read in full) and content/veridian/curriculum/wma11/cubic-graph-sketching-from-factored-form.ts (grep'd for "transform"/"stretch"/"translat", plus its beyond-spec block read) to confirm neither already contains the connective content below; content/veridian/question-bank/wma11.ts (confirmed to contain no hit for "transform" — no overlap to check against). No new primary-source PDF was fetched for this pass; every past-paper citation below is inherited from the facts bank's own already-verified extractions. Every algebraic and numerical claim — the quadratic decomposition, the cubic's translated roots and turning points, the k/x² identity — was independently checked with sympy before being written in, not asserted from memory or copied from the source documents' own arithmetic.

CODEX Deep-Dive — Graph Transformations Described in Words (WMA11, spec 1.12)

0. Spec anchor and where this document's boundary sits

Spec 1.12, verbatim (facts bank §1): "Knowledge of the effect of simple transformations on the graph of y = f(x): y = af(x), y = f(x) + a, y = f(x + a), y = f(ax) — applicable to quadratics, cubics, reciprocals, sine, cosine and tangent." Four transformation forms, six named curve families they must be shown to apply to.

The live lesson (graph-transformations-in-words.ts) already derives all four rules from first principles (tracking a single point through each equation, rather than stating sign-flip rules to memorise), builds two real anchors in full (Jan 2023 Q7(b) on y=6/xy=6/x; Oct 2021 Q4(a)(i) on cos⁡x→cos⁡2x\cos x \to \cos 2x), reconstructs a third (Jan 2019 Q8's sketch-only curve) across three trap-taxonomy entries, and closes with one combined-transformation example on x2x^2. A companion document, codex-deep-dive-trig-graphs-period-and-domain.md, already extends the same four rules specifically onto sine/cosine/tangent (general period formula, the vertical-translation gap on trig curves, ordering two input-side transformations on a trig function) — that ground is not repeated here.

What is left, and what this document adds: two of the spec's six named curve families — reciprocals of the form k/x2k/x^2 (spec 1.11 names this as a distinct curve shape from k/xk/x) and cubics — have never had a single spec-1.12 transformation applied to them anywhere in this course's WMA11 material, real or VERIDIAN-original; reflections (a=−1a=-1) are used in the live lesson's MCQs but never derived systematically with the invariant-line reasoning that makes them fast to check; and no existing document connects spec 1.12's transformation language to spec 1.3/1.5's completing-the-square, despite completing the square being, structurally, exactly a composition of spec-1.12 transformations applied to y=x2y=x^2. Sections 2–4 below fill those three gaps. Section 5 closes with an honest coverage map of every real exam angle spec 1.12 has actually produced across the nine series the facts bank has touched, cross-referenced against the six-family/four-form grid the spec itself sets up.


1. The four transformations, restated compactly

Derived in full in the live lesson's mechanism block (tracking a point (p,q)(p,q) with f(p)=qf(p)=q through each equation) — restated here only as the result, not re-derived:

FormActs onEffect
y=af(x)y=af(x)outputvertical stretch, scale factor aa, from the xx-axis
y=f(x)+ay=f(x)+aoutputvertical translation, vector (0a)\binom{0}{a}
y=f(x+a)y=f(x+a)inputhorizontal translation, vector (−a0)\binom{-a}{0} (sign flips)
y=f(ax)y=f(ax)inputhorizontal stretch, scale factor 1a\frac1a, from the yy-axis (reciprocal, not aa itself)

Two families of two: f(x)+af(x)+a and f(x+a)f(x+a) are translations (shape unchanged, position moves); af(x)af(x) and f(ax)f(ax) are stretches (a fixed axis, shape scaled relative to it). A real examiner report on the y=6/x→y=6/(x−2)y=6/x \to y=6/(x-2) pair confirms the mark scheme gates the translation mark on the word "translation" specifically, not on the direction or distance, which most candidates already had right (Jan 2023, Q7(b), facts bank §4.1) — the live lesson's teach and trap-taxonomy blocks cover this in full; it is not repeated here.


2. The two curve families spec 1.12 names but no WMA11 document has yet transformed

2.1 y=k/x2y = k/x^2

Spec 1.11 lists y=k/xy=k/x and y=k/x2y=k/x^2 as two separate reciprocal shapes (facts bank §1, line 30); spec 1.12 says its four transformation rules apply to "reciprocals" generally, without distinguishing the two. Every transformation example touching a reciprocal anywhere in this course's WMA11 material — the live lesson's marked-solution, this course's own MCQs — uses k/xk/x. k/x2k/x^2 has had none.

Micro-example A (translation, f(x+a)f(x+a)): f(x)=4x2f(x)=\dfrac{4}{x^2} has its one vertical asymptote at x=0x=0 (both branches lying above the xx-axis, since x2>0x^2>0 everywhere it is defined) and horizontal asymptote y=0y=0. g(x)=f(x−3)=4(x−3)2g(x) = f(x-3) = \dfrac{4}{(x-3)^2} is undefined exactly where x−3=0x-3=0, i.e. x=3x=3: the vertical asymptote translates from x=0x=0 to x=3x=3, exactly as the f(x+a)f(x+a) rule with a=−3a=-3 predicts (shift by −a=3-a=3). The horizontal asymptote, y=0y=0, is untouched — an xx-direction translation changes no yy-value.

Micro-example B (a genuine coincidence worth knowing, checkable directly, not exam-cited): for this specific curve family, y=f(ax)y=f(ax) and y=1a2f(x)y=\frac{1}{a^2}f(x) are not two different descriptions of two similar-looking curves — they are the same curve. f(ax)=k(ax)2=ka2x2=1a2⋅kx2=1a2f(x)f(ax) = \dfrac{k}{(ax)^2} = \dfrac{k}{a^2x^2} = \dfrac{1}{a^2}\cdot\dfrac{k}{x^2} = \dfrac{1}{a^2}f(x). Concretely, with k=4,a=3k=4,a=3: f(3x)=49x2=19f(x)f(3x) = \dfrac{4}{9x^2} = \dfrac19 f(x) — verified symbolically. So "a horizontal stretch, scale factor 13\frac13" and "a vertical stretch, scale factor 19\frac19" are both, simultaneously, exactly correct descriptions of the identical resulting curve. This only happens because k/x2k/x^2 is a pure even power of xx (f(ax)=anf(x)f(ax)=a^n f(x) for any f(x)=kxnf(x)=kx^n, here n=−2n=-2) — it is not true of y=k/xy=k/x (an odd power, n=−1n=-1: there, f(ax)=1af(x)f(ax)=\frac1a f(x), a different numerical relationship, and the two descriptions coincide only up to a sign). A mark scheme would still expect the transformation that was actually asked for, described in the terms the question used — this is a fact about the curve, not a licence to answer either way on a real question — but it is a genuinely useful check: if a student's "vertical stretch factor" for a k/x2k/x^2-type f(ax)f(ax) transformation doesn't equal the square of 1/a1/a, an arithmetic slip has been made somewhere.

2.2 Cubics

No existing WMA11 document — lesson, technique-hub, or question bank — applies a spec-1.12 transformation to a cubic. The cubic used below, f(x)=2(x+1)(x−3)2f(x)=2(x+1)(x-3)^2, is itself real: it is the exact function from Oct 2021 Q6(a)/(c) (facts bank §4.1 and §4.4), already used elsewhere in this course for factored-form sketching and for a stationary-tangent question — applying a translation to it here is VERIDIAN-original, not a real exam question.

f(x)=2(x+1)(x−3)2f(x)=2(x+1)(x-3)^2 has a simple root at x=−1x=-1 (crosses), a repeated root at x=3x=3 (touches — even multiplicity), and, confirmed by differentiating (f′(x)=6x2−20x+6f'(x)=6x^2-20x+6, roots x=13x=\frac13 and x=3x=3, both re-derived and checked with sympy): a local maximum at (13,51227)\left(\frac13, \frac{512}{27}\right) and a local minimum at (3,0)(3,0) — the minimum coincides with the touching root, as it must for an even-multiplicity root of a curve that is above the axis on both nearby sides.

Micro-example C (translation, f(x+a)f(x+a), every feature tracked at once): h(x)=f(x−1)h(x)=f(x-1) moves every one of the four features above by exactly +1+1 in xx, 00 in yy — confirmed by direct expansion (h(x)=2x3−16x2+32xh(x)=2x^3-16x^2+32x, re-derived and checked with sympy, then re-solved from scratch): simple root at x=0x=0, repeated root/minimum at x=4x=4 (value 00), maximum at (43,51227)\left(\frac43, \frac{512}{27}\right). Every yy-value is exactly preserved — a horizontal translation cannot change a curve's height at any tracked feature, whatever kind of feature it is (root, turning point, or otherwise); only the xx-coordinate three of the four features share the same shift by the same +1+1, because the whole curve is rigidly repositioned, not reshaped.

Micro-example D (stretch, af(x)af(x), contrast with C): y=2f(x)y=2f(x) instead doubles every height and moves no xx-coordinate: the maximum becomes (13,102427)\left(\frac13, \frac{1024}{27}\right), the minimum stays (3,0)(3,0) (doubling zero gives zero — the touching root is unmoved), and both roots (x=−1,3x=-1,3) are completely unaffected, since a vertical stretch cannot move a point that was already on the xx-axis. This is the general fact §3 below makes precise: every point on the xx-axis is invariant under y=af(x)y=af(x), for any curve, for any value of aa.


3. Reflections as the a=−1a=-1 special case, and the invariant-line shortcut

Spec 1.12 lists four transformation forms, not five — a reflection is not a separate rule. y=−f(x)y=-f(x) is y=af(x)y=af(x) with a=−1a=-1; y=f(−x)y=f(-x) is y=f(ax)y=f(ax) with a=−1a=-1. The live lesson's MCQs (gt-mcq-3, gt-mcq-4) already test both directions on an abstract ff and on f(x)=x3−4xf(x)=x^3-4x; this section adds the general reasoning that makes a reflection question fast to check without re-deriving from scratch each time, and applies it to the two real citations that already anchor this lesson's reflection content.

The invariant line, stated generally. For y=af(x)y=af(x) (any aa, including −1-1): a point already on the xx-axis satisfies f(p)=0f(p)=0, and a⋅0=0a\cdot 0=0 regardless of aa — so every root of ff is unmoved by any output-side stretch or reflection. The xx-axis is the transformation's invariant line. For y=f(ax)y=f(ax): a point already on the yy-axis has x=0x=0, and f(a⋅0)=f(0)f(a\cdot 0)=f(0) regardless of aa — the point (0,f(0))(0,f(0)) is unmoved by any input-side stretch or reflection. The yy-axis is that transformation's invariant line. Translations have no invariant line at all (unless a=0a=0, which is not a translation).

Why this matters for the real, documented sign error on this topic. Jan 2019 Q8(a) gives a curve CC with a single horizontal asymptote y=4y=4 and asks for the asymptote of y=f(−x)y=f(-x); the real mark scheme answer is y=4y=4 (unchanged), and the real examiner report records "a significant number of candidates who stated y=−4y=-4" (facts bank §4.1, already fully cited in the live lesson's trap-taxonomy). The invariant-line reasoning gives the fastest possible check on this, faster than re-deriving it: y=f(−x)y=f(-x) is a reflection in the yy-axis (f(ax)f(ax), a=−1a=-1), whose invariant line is the yy-axis itself — a horizontal line (y=4y=4) does not touch the yy-axis's role as mirror at all, in the sense that reflecting in the yy-axis only ever swaps left-right, never touches a yy-value. A candidate who reached for y=−4y=-4 had, in effect, applied the mirror for the other transformation, y=−f(x)y=-f(x) (af(x)af(x), whose invariant line is the xx-axis and which does flip every yy-value including asymptote heights) — the exact "reflected in wrong axis" confusion the report itself flags as unclear whether it was axis-based.

Why this is curve-family-dependent, not universal — the contrast the live lesson's abstract MCQs don't show. For an odd function, −f(x)-f(x) and f(−x)f(-x) produce the identical curve, because oddness is defined as f(−x)=−f(x)f(-x)=-f(x). Checked directly on the real base curve from Jan 2023's own anchor, f(x)=6/xf(x)=6/x: −f(x)=−6x-f(x)=-\frac6x and f(−x)=6−x=−6xf(-x)=\frac{6}{-x}=-\frac6x — equal, confirmed symbolically. So for this specific curve, reflecting in the xx-axis and reflecting in the yy-axis genuinely give the same picture, and a student could not tell which reflection had been asked for from the resulting graph alone. For a curve that is neither odd nor even — almost every quadratic, including the real one below — this shortcut fails completely: taking f(x)=12−43(x+2)2f(x)=12-\frac43(x+2)^2 (the real June 2022 Q5(a) quadratic, facts bank §4.1), −f(x)=43x2+163x−203-f(x)=\frac43x^2+\frac{16}{3}x-\frac{20}{3} (vertex (−2,−12)(-2,-12), opening upward) while f(−x)=−43x2+163x+203f(-x)=-\frac43x^2+\frac{16}{3}x+\frac{20}{3} (vertex (2,12)(2,12), opening downward) — two genuinely different curves, confirmed symbolically to be unequal. A student who has only ever practised reflections on an odd function (sine, or 6/x6/x) could walk away believing the two reflections are always interchangeable; they are not, and a general quadratic is the standard counterexample.


4. Completing the square is a composition of spec-1.12 transformations — a connection no existing WMA11 document states

f(x)=a(x−h)2+kf(x)=a(x-h)^2+k, the completed-square form spec 1.5 requires, is exactly y=x2y=x^2 put through three of spec 1.12's four transformations in a fixed order: translate the input by hh (giving (x−h)2(x-h)^2), stretch the output by aa (giving a(x−h)2a(x-h)^2 — this step also reflects, if a<0a<0), then translate the output by kk (giving a(x−h)2+ka(x-h)^2+k). The live lesson's own closing beyond-spec block already proves, on the abstract pair y=x2y=x^2, that swapping the order of two output-side steps changes the resulting curve; this section applies that same order-sensitivity to a real, already-cited exam quadratic rather than an invented one.

Worked on the real June 2022 Q5(a) quadratic (facts bank §4.1: maximum turning point (−2,12)(-2,12), curve cuts the negative xx-axis at −5-5; real mark scheme answer f(x)=12−43(x+2)2f(x)=12-\frac43(x+2)^2, verified by direct substitution, f(−5)=0f(-5)=0, f(−2)=12f(-2)=12):

  1. Input translation, a=2a=2 in the f(x+a)f(x+a) form: g(x)=(x+2)2g(x)=(x+2)^2 moves the vertex of y=x2y=x^2 from (0,0)(0,0) to (−2,0)(-2,0) (shift by −a=−2-a=-2).
  2. Output stretch, factor −43-\frac43: −43(x+2)2-\frac43(x+2)^2. Because ∣−43∣>1|{-\frac43}|>1 this is a stretch (not a "compression", whatever the resulting picture looks like — the live lesson's own teach block already makes this vocabulary point for the general case); because the factor is negative it also reflects in the xx-axis, flipping the curve from opening upward to opening downward. By §3's invariant-line rule, the point already on the xx-axis — here, the root at x=−5x=-5 inherited unchanged from the previous step — cannot move at this step, whatever the stretch factor is: 0×(−43)=00 \times \left(-\frac43\right)=0 regardless.
  3. Output translation, +12+12: −43(x+2)2+12-\frac43(x+2)^2+12. The vertex, at height 00 since step 1, moves to height 1212; the root at x=−5x=-5, at height 00 since it was invariant through step 2, also moves to height 1212 — unless it happened to be the root, which is exactly the trap: a real root of the original function is not generally still a root after an output translation. Re-checking directly: −43(−5+2)2+12=−43(9)+12=−12+12=0-\frac43(-5+2)^2+12 = -\frac43(9)+12 = -12+12=0 — the root survives here only because −5-5 was never actually invariant through step 2 in the way a generic point would be; it was invariant specifically because it started on the axis, and step 3 then moves the whole curve (root included) up by 1212. The final check that this is the real exam answer: expanding −43(x+2)2+12-\frac43(x+2)^2+12 gives −43x2−163x+203-\frac43x^2-\frac{16}{3}x+\frac{20}{3}, matching the facts bank's own quoted equivalent form exactly.

The order genuinely matters, checked on this same real quadratic. Reversing steps 2 and 3 — translating by 1212 before stretching, i.e. computing −43[(x+2)2+12]-\frac43\left[(x+2)^2+12\right] instead — expands to −43x2−163x−643-\frac43x^2-\frac{16}{3}x-\frac{64}{3}: a different quadratic, with vertex (−2,−16)(-2,-16), not (−2,12)(-2,12), and no root at −5-5 at all (confirmed by direct substitution and by symbolic expansion). Completing the square's own formula, a(x−h)2+ka(x-h)^2+k, is written in exactly the order that avoids this — the stretch is applied to the shifted-and-squared term before kk is added, never to (x−h)2+k(x-h)^2+k as a whole — and that fixed order is precisely why the formula works. A student who has internalised "stretch, then translate" as the completing-the-square recipe has, without necessarily being told so, already learned the one correct ordering of two spec-1.12 transformations that this lesson's own beyond-spec block shows is not interchangeable.


5. Every real exam angle spec 1.12 has actually produced — a coverage map against the spec's own 6×4 grid

Spec 1.12 sets up a 6×46 \times 4 grid (six curve families ×\times four transformation forms). Across every series the facts bank has touched at any depth (nine series total; five with a fully-read examiner report), the real, quoted, mark-scheme-anchored citations for this exact spec point fill exactly three cells with confirmed detail, plus two named-but-unmined series that may or may not fill more:

Curve familyaf(x)f(x)+af(x+a)f(ax)
Reciprocal (k/xk/x-type)——Jan 2023 Q7(b) (translation, 2 units +x; vocabulary-gated)—
Sketch-only curve, asymptote+turning point given (Jan 2019's own Figure 4)———Jan 2019 Q8(b) (scale-factor-not-inverted) — plus Q8(a), a reflection (a=−1a=-1 case)
Cosine———Oct 2021 Q4(a)(i) (stretch-direction confusion; the real question asks for coordinates, not a worded description)
Quadratics0 of 9 series0 of 90 of 90 of 9
Cubics0 of 9 series0 of 90 of 90 of 9
Sine, tangentspec's own worked examples only (3sin⁡x3\sin x, sin⁡(x+π/6)\sin(x+\pi/6), sin⁡2x\sin 2x) — no examiner-report citation found for any of these as an exam question, as distinct from spec-stated expected knowledge
k/x2k/x^20 of 9 series0 of 90 of 90 of 9

The single clearest finding from building this grid: despite spec 1.12 naming quadratics and cubics as two of its six applicable curve families, no series in the nine the facts bank has checked, at any depth, has produced a real spec-1.12 transformation question built on a quadratic or a cubic base curve — every fully-mined real anchor for this spec point uses either a reciprocal-shaped curve (algebraic or sketch-only) or a trigonometric one. This is a real, checkable gap in the evidence, not a claim that the spec itself excludes quadratics or cubics from this question type — quadratics and cubics appear constantly elsewhere on this paper (discriminant, factorisation, sketching), just never as the base curve of a spec-1.12 transformation question in any series checked so far.

A fifth real angle, not a cell in the grid above: Jan 2019 Q8(c) — "the least successful part of this question... often omitted" per the examiner report — uses the original, untransformed curve CC's own shape (maximum (4,9)(4,9), asymptote y=4y=4) to count how many values of kk give the line y=ky=k exactly one intersection with CC. This is a spec 1.11/1.12 crossover (using a curve's own graph, informed by the transformation reasoning practised on its earlier parts, to answer an intersection-counting question) rather than a sixth transformation type — flagged here as a distinct real exam angle on this topic, already fully built out in the live lesson's trap-taxonomy, not re-derived again here.

Oct 2020 Q2 and Q5 remain named in the facts bank's own topic heading but carry no mined mark-scheme or examiner-report quote (facts bank §4.1's heading line; confirmed again by the SIGNAL brief, §1) — nothing above claims any content for them, and this grid should be read as "confirmed empty" for those two cells only in the sense that no citation exists yet, not in the sense that the two questions were checked and found to avoid quadratics/cubics.


6. Flagged gaps — what this document does not, and cannot yet, claim