Modeling with linear algebra — the platoon assignment problem
This is unofficial review material prepared by the course CIC for the study session. It is not the WPR and is not drawn from any secured assessment. Coverage follows the published lesson objectives for Lessons 23–32 — the Mini Block, Modeling with Linear Algebra — and the conventions of Homework 3, PSL 3, and TL 4.
Per the course director, study your gate and work the homework problems. The application sections here use platoon_roomate_data, the synthetic dataset she provided, so the practice lines up with the homework you are already doing.
Assumption worth knowing: WPR 1 provided no formula sheet, so none is provided here. Unlike WPR 1, this block is computation-heavy — you are expected to know the magnitude, dot product, cosine, determinant and inverse formulas cold. The reference card is the list to memorize.
Situation. You are the executive officer of a 30-soldier platoon preparing for a field problem. The commander must (1) assign roommates by pairing soldiers with similar profiles, and (2) rank the platoon for a limited number of school slots using a weighted score. Every soldier is on record with three measures: AFT score (max 600), weapons qualification (hits out of 40), and high school GPA (max 4.00). The roster is platoon_roomate_data.xlsx, 30 soldiers, C01–C30.
Lessons 23–24. Component arithmetic, magnitude, the dot product, and the tests for orthogonal and parallel.
Use these vectors for all of Part I:
Compute each by hand, component by component.
(a) 〈6, 0, 3〉 (b) 〈−2, 4, −5〉 (c) 〈12, −6, 12〉 (d) 〈6, −6, 9〉
For (d): 2u⃗ = 〈8, −4, 8〉, then subtract v⃗ component by component: 〈8−2, −4−2, 8−(−1)〉 = 〈6, −6, 9〉. The third component is the one cadets miss — subtracting a negative.
Compute the magnitude of each vector. Show the work for at least one.
|u⃗| = |v⃗| = |w⃗| = |t⃗| =
|u⃗| = √(16+4+16) = √36 = 6 |v⃗| = √(4+4+1) = √9 = 3
|w⃗| = √(64+16+64) = √144 = 12 |t⃗| = √(0+9+16) = √25 = 5
All four are exact integers — if you are getting decimals, check your squaring. Note that squaring kills the sign: the negative components of u⃗ and w⃗ contribute the same as positive ones.
Compute each dot product algebraically. Show your work.
(a) u⃗·v⃗ = (b) u⃗·w⃗ = (c) u⃗·t⃗ =
(a) 4(2) + (−2)(2) + 4(−1) = 8 − 4 − 4 = 0
(b) 4(−8) + (−2)(4) + 4(−8) = −32 − 8 − 32 = −72
(c) 4(0) + (−2)(3) + 4(4) = 0 − 6 + 16 = 10
The dot product is a scalar, not a vector. A cadet who writes 〈8, −4, −4〉 for (a) has computed the component-wise product and stopped one step early.
Use your results from Questions 2 and 3.
(a) Yes, orthogonal. Test: two vectors are orthogonal exactly when their dot product is zero. u⃗·v⃗ = 0, so the angle between them is 90°.
(b) Yes, parallel — specifically antiparallel. Test: two vectors are parallel when one is a scalar multiple of the other. Here w⃗ = −2u⃗, checked component by component: −2(4) = −8 ✓, −2(−2) = 4 ✓, −2(4) = −8 ✓.
Equivalent check by angle: cos θ = u⃗·w⃗ / (|u⃗||w⃗|) = −72 / (6 × 12) = −72/72 = −1, so θ = 180°. A cosine of exactly ±1 is the parallel condition.
(c) No — not for nonzero vectors. Parallel means cos θ = ±1 (θ = 0° or 180°); orthogonal means cos θ = 0 (θ = 90°). A single angle cannot be both. The zero vector is the degenerate exception, since it is trivially orthogonal to everything and has no direction to be parallel to.
Compute the angle θ between u⃗ and t⃗. Give cos θ exactly and θ to one decimal place.
cos θ = θ =
cos θ = u⃗·t⃗ / (|u⃗||t⃗|) = 10 / (6 × 5) = 10/30 = 1/3 ≈ 0.3333
θ = cos−1(1/3) = 70.5°
Sanity check the sign: a positive dot product means an acute angle, so anything above 90° here is an arithmetic error.
For each expression, state whether it is defined or undefined. If defined, give the type of the result (scalar or vector). If undefined, say why.
(a) Defined — scalar. v⃗ + w⃗ is a vector in ℝ3, and the dot product of two ℝ3 vectors is a scalar. (Value: v⃗+w⃗ = 〈−6, 6, −9〉, so u⃗·(v⃗+w⃗) = −24 − 12 − 36 = −72.)
(b) Undefined. |u⃗| is a scalar (6) and v⃗ is a vector. Addition requires both operands to be the same kind of object with the same dimensions; you cannot add a scalar to a vector.
(c) Undefined. (u⃗·v⃗) is a scalar (0 here), and the dot product is an operation between two vectors. Scalar · vector is not a dot product. Note that scalar multiplication 0w⃗ would be defined — the dot symbol is what makes this illegal.
Lessons 25–26. Soldiers as feature vectors, why scale matters, and cosine similarity as a matching score.
Three soldiers are drawn from the roster. Each is represented in ℝ3 by normalizing every measure onto a 0–1 scale — AFT ÷ 600, weapons qualification ÷ 40, GPA ÷ 4.00 — rounded to two decimals, exactly as the Spotify features were scaled in PSL 3.
| Soldier | AFT | Weapons | GPA | Normalized vector |
|---|---|---|---|---|
| C05 Evans e⃗ | 462 | 28 | 4.00 | 〈0.77, 0.70, 1.00〉 |
| C12 Lewis l⃗ | 450 | 26 | 3.96 | 〈0.75, 0.65, 0.99〉 |
| C03 Carter c⃗ | 388 | 40 | 3.03 | 〈0.65, 1.00, 0.76〉 |
(a) ℝ3. The dimension is the number of measured features — three — not the number of soldiers. Each soldier is one point (one vector) in that three-dimensional feature space; adding a fourth measure would move every soldier into ℝ4.
(b) Weapons qualification separates Carter most: 1.00 against 0.70 and 0.65, a gap of roughly a third of the scale. Carter is also lowest on GPA (0.76 vs 1.00 and 0.99). Evans and Lewis are nearly identical on GPA (1.00 vs 0.99) — and in fact close on all three.
A cadet argues the normalization step is busywork and computes similarity directly on the raw numbers instead — Evans as 〈462, 28, 4.00〉, and so on.
(a) 4622 = 213,444; 282 = 784; 4.002 = 16. Sum = 214,244, so the magnitude is √214,244 = 462.87.
AFT's share: 213,444 / 214,244 = 99.6%. Weapons qualification and GPA together contribute four tenths of one percent.
(b) On the raw scale the three measures are not comparable: AFT runs to 600, weapons qualification to 40, GPA to 4. Because every one of these operations — magnitude, dot product, cosine — squares or multiplies the components, the variable with the largest numeric range dominates completely. Two soldiers with identical AFT scores would look nearly identical no matter how far apart their marksmanship and academics were. The "similarity" would really just be a comparison of AFT scores wearing a disguise.
Normalizing divides each measure by its own maximum, putting all three on a common 0–1 scale. Now a 0.1 difference means the same amount of difference in any feature, and each one gets a real vote.
This is the same principle as standardizing before KNN on WPR 1: distance and similarity are only meaningful when the axes are comparable.
Compute the three magnitudes to four decimal places.
|e⃗| = |l⃗| = |c⃗| =
A squad leader says: "Evans has the largest magnitude, so Evans is the best soldier of the three." Is that a valid reading? Explain what magnitude does and does not measure here.
|e⃗| = √(0.5929 + 0.4900 + 1.0000) = √2.0829 = 1.4432
|l⃗| = √(0.5625 + 0.4225 + 0.9801) = √1.9651 = 1.4018
|c⃗| = √(0.4225 + 1.0000 + 0.5776) = √2.0001 = 1.4142
Not valid. Magnitude measures the overall size of the profile — how far the soldier sits from the origin once all three features are combined. It says nothing about which features are large, and nothing about quality. Carter (1.4142) edges out Lewis (1.4018) purely on the strength of a perfect weapons score, while being well behind on both other measures.
Magnitude also cannot compare soldiers to each other in any directional sense. Two soldiers with very different strengths can have nearly equal magnitudes — as Carter and Lewis do here, differing by about 0.012 while being obviously different profiles. Direction, not length, carries the similarity information, which is exactly what cosine similarity extracts.
The commander pairs roommates by profile similarity. Evans needs a roommate: the candidates are Lewis and Carter.
(a) e⃗·l⃗ = 0.77(0.75) + 0.70(0.65) + 1.00(0.99) = 0.5775 + 0.4550 + 0.9900 = 2.0225
e⃗·c⃗ = 0.77(0.65) + 0.70(1.00) + 1.00(0.76) = 0.5005 + 0.7000 + 0.7600 = 1.9605
(b) cos(e⃗, l⃗) = 2.0225 / (1.4432 × 1.4018) = 2.0225 / 2.0231 = 0.9997
cos(e⃗, c⃗) = 1.9605 / (1.4432 × 1.4142) = 1.9605 / 2.0412 = 0.9605
(c) Lewis. The cosine is 0.9997 against 0.9605 — Evans and Lewis point in almost exactly the same direction in feature space, meaning they have the same shape of profile: strong academics, strong-to-moderate fitness, weak marksmanship. Feature by feature they are within 0.02, 0.05 and 0.01 of each other. Carter is the opposite type — a perfect weapons score carrying a weaker AFT and GPA — so the angle between Evans and Carter is visibly wider.
The commander keeps a priority vector p⃗ = 〈0.5, 0.3, 0.2〉 describing what the platoon values, and ranks soldiers by their cosine similarity to it. A staff officer proposes replacing it with 2p⃗ = 〈1.0, 0.6, 0.4〉 "to make the priorities count for more."
Would this change any soldier's cosine similarity? Would it change the ranking? Justify using the definition of cosine similarity.
No to both. Nothing changes at all.
Doubling p⃗ doubles every dot product s⃗·p⃗, and doubles |p⃗| in the denominator. The two factors of 2 cancel:
Geometrically: scaling a vector by a positive number stretches its length but leaves its direction untouched. p⃗ and 2p⃗ are parallel — the angle between a soldier and either one is identical. Cosine similarity measures angle only, so it is blind to length by construction. This is the same reason normalizing to unit vectors changes nothing about cosine rankings.
The staff officer's instinct — that bigger numbers mean stronger priorities — would be right for a raw dot product score, which is not scale-invariant. It is wrong for cosine.
Every cosine similarity in Question 10 came out above 0.95, even for two soldiers with clearly different profiles. Explain why the values cluster so close to 1 in this dataset, and what that means for how you should read them.
Every feature here is non-negative — all three normalized measures fall in [0, 1]. That confines every soldier vector to the positive octant of ℝ3, a single corner of the space. The largest angle possible between two vectors in that corner is 90°, and that only happens in the extreme case where each soldier scores zero wherever the other scores anything. Real soldiers are nowhere near that, so the achievable range of cosine values is squeezed into a narrow band just below 1.
What it means practically: do not read 0.96 as "very similar" on an absolute scale. These scores are only meaningful relative to each other. The gap between 0.9997 and 0.9605 is small in absolute terms but is the entire signal — it is the difference between a near-twin and a clearly different profile. Rank the candidates and compare; do not set an absolute threshold like "0.9 means a good match."
Cosine similarity only spans its full range of −1 to 1 when features can be negative, as with z-scores.
The commander wants a description of the "average" of a fire team built 60% from Evans' profile and 40% from Carter's.
(a) 0.6e⃗ = 〈0.462, 0.420, 0.600〉, 0.4c⃗ = 〈0.260, 0.400, 0.304〉
b⃗ = 〈0.722, 0.820, 0.904〉
(b) Closer to e⃗, because Evans carries the larger weight. A linear combination lands between the two source vectors, positioned proportionally to the weights — at 60/40 the blend sits nearer the 60% end. Had the weights been 50/50 the blend would sit symmetrically between them, and its cosine similarity to each would depend only on the geometry, not the weights.
Note what the blend inherits: Evans' high GPA component (0.904 is close to Evans' 1.00) but a weapons component of 0.820, pulled well up from Evans' 0.70 by Carter's perfect 1.00. The blend is not "mostly Evans" in every feature — it is a weighted average feature by feature.
Lessons 27–28. Dimensions, transpose, the arithmetic, and when a product is legal at all.
Use these for all of Part III:
| A = | [ 3 1 ] [ 2 4 ] |
B = | [ 1 2 ] [ 0 5 ] |
C = | [ 1 0 2 ] [ 3 1 4 ] |
p⃗ = | [ 2 ] [ 1 ] |
q⃗ = | [ 1 ] [ 0 ] [ 3 ] |
(a) A is 2×2, C is 2×3, p⃗ is 2×1, q⃗ is 3×1. Rows first, always.
(b) CT = 3×2:
[ 1 3 ]
[ 0 1 ]
[ 2 4 ]
Transposing swaps rows and columns, so an m×n matrix becomes n×m. The entry at (1,3) of C lands at (3,1) of CT.
(c) F is 30×3 — one row per soldier, one column per feature — so FT is 3×30. A row of FT is one feature measured across all 30 soldiers (every AFT score, say). A column of FT is one soldier's complete profile. Transposing switches the question from "tell me about this soldier" to "tell me about this measure."
Compute each. Show your work.
(a) A + B (b) A − B (c) 4A (d) 2A − 3B
(a) [ 4 3 ; 2 9 ] (b) [ 2 −1 ; 2 −1 ]
(c) [ 12 4 ; 8 16 ] (d) [ 3 −4 ; 4 −7 ]
For (d): 2A = [6 2; 4 8] and 3B = [3 6; 0 15], so the difference is [6−3, 2−6; 4−0, 8−15] = [3, −4; 4, −7].
All of these are entry-by-entry operations, and all require the matrices to have identical dimensions. That is what makes them easy — and what makes multiplication, which is not entry-by-entry, the place where people lose points.
For each product: state whether it is defined, give the dimensions of the result, and if defined, compute it.
The rule: (m×n)(n×k) is defined only when the inner dimensions match, and the result is m×k.
(a) 2×2 times 2×1 → defined, 2×1. Ap⃗ = [3(2)+1(1); 2(2)+4(1)] = [7; 8]
(b) 2×3 times 3×1 → defined, 2×1. Cq⃗ = [1(1)+0(0)+2(3); 3(1)+1(0)+4(3)] = [7; 15]
(c) 1×2 times 2×2 → defined, 1×2. p⃗TA = [2(3)+1(2), 2(1)+1(4)] = [8, 6]
(d) 2×2 times 3×1 → UNDEFINED. The inner dimensions are 2 and 3; they do not match. A expects a vector with two components and q⃗ has three.
Notice (a) and (c): the same matrix and the same vector, but transposing p⃗ and switching the order produces a different shape and different numbers. Order is part of the operation.
(a) AB = [ 3 11 ; 2 24 ]
Entry (1,2) worked out: row 1 of A dotted with column 2 of B = 〈3, 1〉 · 〈2, 5〉 = 6 + 5 = 11.
(b) BA = [ 7 9 ; 10 20 ]
(c) No — AB ≠ BA. Matrix multiplication is not commutative. Order changes the answer, and here it changes every single entry.
This is not an edge case, it is the normal situation: for most pairs of matrices the two products differ, and for non-square matrices one of the two orders is usually not even defined. Every entry of a product is a row of the left matrix dotted with a column of the right — swap the operands and you are dotting entirely different vectors together.
Lessons 29–31. Invertibility, the inverse method, row reduction, and what a singular system is telling you.
Continue with A = [ 3 1 ; 2 4 ] and B = [ 1 2 ; 0 5 ], and add D = [ 2 4 ; 3 6 ].
Compute det(A), det(B), det(D). For each, state whether the matrix has an inverse.
det = a11a22 − a12a21
det(A) = 3(4) − 1(2) = 10 → nonzero, invertible
det(B) = 1(5) − 2(0) = 5 → nonzero, invertible
det(D) = 2(6) − 4(3) = 12 − 12 = 0 → singular, no inverse
The determinant is the single test: a square matrix is invertible exactly when its determinant is nonzero. The size of a nonzero determinant does not matter for this question — det = 5 and det = 10 are equally invertible.
For a 2×2, A−1 = (1/det) [ a22 −a12 ; −a21 a11 ] — swap the diagonal, negate the off-diagonal, divide by the determinant.
(a) A−1 = (1/10) [ 4 −1 ; −2 3 ] = [ 0.4 −0.1 ; −0.2 0.3 ]
(b) AA−1 = [3, 1; 2, 4][0.4, −0.1; −0.2, 0.3]
(1,1): 3(0.4) + 1(−0.2) = 1.2 − 0.2 = 1
(1,2): 3(−0.1) + 1(0.3) = −0.3 + 0.3 = 0
(2,1): 2(0.4) + 4(−0.2) = 0.8 − 0.8 = 0
(2,2): 2(−0.1) + 4(0.3) = −0.2 + 1.2 = 1
= [ 1 0 ; 0 1 ] = I ✓
The commander budgets weekly training hours across two activities. Let x1 be hours of physical training and x2 be hours on the range. Two readiness requirements must be met exactly:
(a) A = [3, 1; 2, 4] — the same matrix from Question 19 — with x⃗ = [x1; x2] and b⃗ = [11; 14]. The coefficients become the rows of A; the constants become b⃗.
(b) x⃗ = (1/10)[4, −1; −2, 3][11; 14]
first entry: (1/10)(4·11 − 1·14) = (1/10)(44 − 14) = 30/10 = 3
second entry: (1/10)(−2·11 + 3·14) = (1/10)(−22 + 42) = 20/10 = 2
x⃗ = [3; 2]
(c) Check both equations: 3(3) + 2 = 11 ✓ and 2(3) + 4(2) = 6 + 8 = 14 ✓
In context: the platoon should schedule 3 hours of physical training and 2 hours on the range each week to meet both readiness requirements exactly. Because det(A) = 10 ≠ 0, this solution is unique — there is no other pair of hours that satisfies both.
Consider D = [ 2 4 ; 3 6 ].
(a) D−1 does not exist. The inverse formula divides by the determinant, and division by zero is undefined. D is singular.
(b) Row 2 is 1.5 times row 1: 1.5(2) = 3 and 1.5(4) = 6. The rows are scalar multiples of one another — in vector language, parallel, or linearly dependent. Row 2 carries no information that row 1 did not already supply. A 2×2 determinant is zero exactly when its rows (equivalently, its columns) are scalar multiples of each other, so the dependence and the zero determinant are the same fact stated two ways.
(c) Each row is a line. Because the rows are proportional, the two lines have the same slope — they are parallel. Two outcomes follow, and which one you get depends on b⃗:
What a singular matrix rules out is the third case: a unique solution is impossible. That is exactly why row reduction tells you more than the determinant alone — det(D) = 0 says "not unique," but only reducing the augmented system reveals which of the other two you have.
Solve the following system by row reduction. Write the augmented matrix first, then show each row operation you apply and name it.
x = y = z =
Augmented matrix:
[ 1 1 1 | 6 ]
[ 2 −1 1 | 3 ]
[ 1 2 −1 | 2 ]
R2 ← R2 − 2R1 and R3 ← R3 − R1:
[ 1 1 1 | 6 ]
[ 0 −3 −1 | −9 ]
[ 0 1 −2 | −4 ]
R2 ↔ R3 (swap, to get a leading 1):
[ 1 1 1 | 6 ]
[ 0 1 −2 | −4 ]
[ 0 −3 −1 | −9 ]
R3 ← R3 + 3R2:
[ 1 1 1 | 6 ]
[ 0 1 −2 | −4 ]
[ 0 0 −7 | −21 ]
R3 ← −(1/7)R3 gives z = 3. Back-substitute into row 2: y − 2(3) = −4, so y = 2. Into row 1: x + 2 + 3 = 6, so x = 1.
(x, y, z) = (1, 2, 3)
Check all three: 1+2+3 = 6 ✓, 2−2+3 = 3 ✓, 1+4−3 = 2 ✓
Each matrix below is already in row echelon form. Classify the system as having a unique solution, no solution, or infinitely many solutions, and say how you can tell.
(a) Unique solution. Every variable has a leading 1 (a pivot) and there is no contradictory row. Back-substitution: y = 4, then x + 8 = 3 so x = −5.
(b) No solution. The second row reads 0x + 0y = 5, that is 0 = 5 — a contradiction. Any row of the form [0 0 … 0 | nonzero] kills the system outright.
(c) Infinitely many solutions. The second row reads 0 = 0, which is true but empty. Only one real equation remains for two unknowns, so y is a free variable: pick any y and x = 3 − 2y follows.
The rule of thumb: a zero row with a nonzero constant means no solution; a fully zero row means a free variable and infinitely many; a pivot in every column of coefficients means unique.
Lesson 32 and synthesis. One matrix–vector product replacing thirty dot products, and why that is the whole point of the block.
The commander must rank soldiers for a limited number of school slots. She assigns importance weights to the three measures and scores every soldier as a weighted sum. Using the same three soldiers, the feature matrix and weight vector are:
| F = | [ 0.77 0.70 1.00 ] Evans [ 0.75 0.65 0.99 ] Lewis [ 0.65 1.00 0.76 ] Carter |
w⃗ = | [ 0.5 ] AFT [ 0.3 ] weapons [ 0.2 ] GPA |
(a) 3×3 times 3×1: inner dimensions match, so it is defined, result 3×1.
(b) Each entry is a row of F dotted with w⃗:
Evans: 0.77(0.5) + 0.70(0.3) + 1.00(0.2) = 0.385 + 0.210 + 0.200 = 0.795
Lewis: 0.75(0.5) + 0.65(0.3) + 0.99(0.2) = 0.375 + 0.195 + 0.198 = 0.768
Carter: 0.65(0.5) + 1.00(0.3) + 0.76(0.2) = 0.325 + 0.300 + 0.152 = 0.777
(c) Each entry is one soldier's weighted readiness score under the commander's priorities — a single number summarizing that soldier's whole profile. Ranking: Evans (0.795), Carter (0.777), Lewis (0.768). Evans gets the slot.
Note how close Carter and Lewis are (0.009 apart) despite completely different profiles — Carter's perfect weapons score almost exactly offsets Lewis' stronger AFT and GPA. A weighted score compresses three numbers into one, and information is lost in the compression.
(d) 30×3 times 3×1 → 30×1, and it performs 30 dot products — one per soldier — in a single operation. This is the payoff of the whole block: matrix–vector multiplication is simultaneous dot products. What you did by hand for three soldiers, Excel's MMULT does for the entire platoon at once.
(a) Evans: 0.154 + 0.420 + 0.200 = 0.774
Lewis: 0.150 + 0.390 + 0.198 = 0.738
Carter: 0.130 + 0.600 + 0.152 = 0.882
New ranking: Carter, Evans, Lewis.
(b) The ranking flipped. Carter went from second to a commanding first — same soldiers, same data, different priorities. The weight vector is not a technicality; it is the commander's judgment about what matters, and it determines the answer. A weighted score is only as defensible as the weights behind it, which is why they must be stated openly rather than buried in a spreadsheet.
(c) w⃗3 = 2w⃗. Every score doubles: 1.590, 1.536, 1.554. The ranking is completely unchanged — Evans, Carter, Lewis, exactly as before.
Scaling every weight by the same positive constant scales every score by that constant, and scaling preserves order. The officer has changed the units of the score and nothing else. Compare Question 11: cosine similarity is immune to this by construction, while a raw weighted score does change — but only in a way that cancels out the moment you rank.
What would change the ranking is altering the weights relative to each other, as in part (a).
On WPR 1 you fit a linear regression ŷi = b0 + b1xi. Suppose you build a matrix X whose first column is all 1s and whose second column holds the x values, and a vector β⃗ = [b0; b1].
What does each row of the product Xβ⃗ compute? Why must the number of columns of X equal the number of rows of β⃗?
Each row of Xβ⃗ computes one fitted value: row i is 〈1, xi〉 · 〈b0, b1〉 = b0(1) + b1xi = ŷi. The column of 1s is what lets the intercept ride along as just another weight.
So Xβ⃗ produces the entire vector of predictions in one operation — the same structure as scoring the platoon in Question 24. A regression model is a weighted sum of features, and β⃗ is its weight vector.
The dimensions must match because each entry of the product is a dot product between a row of X and the vector β⃗, and a dot product is only defined between vectors with the same number of components. One weight per feature, no more and no less — if X has a column with no matching coefficient, there is nothing to multiply it by.
In two to three sentences, explain how the dot product, cosine similarity, and matrix–vector multiplication are all the same operation wearing different clothes. Refer to at least two of the problems you worked in this exam.
The dot product is the atom. Everything else is built from it.
This is why the dimension rule takes the form it does: the inner dimensions must match because a dot product needs two vectors of equal length. Every "is this defined?" question in this exam reduces to that one requirement.