Main derivation
S01 · definition
Before
\text{find the best candidate}After
\min_{s\in S}f(s),\ \ \operatorname{argmin}=\{s^*\in S\mid \forall s\in S:\ f(s^*)\le f(s)\}Conditions: none
Rule: mko_opt_def · Uses: G1, G2, G3
Leaf basis: mko_opt_def + def_intro
State the problem as in the MKO: an optimal point must belong to the feasible set S and its objective value must not exceed that of any point of S. The optimal value is a number; argmin is the set of all optimal points and may have more than one element. Apply the MKO definition to the objective f|S. The same formula on C may describe values at infeasible candidates, but those candidates are excluded from the optimization comparison.
S02 · equivalent
Before
C
After
|C|=9,\ C=\{0,1,2\}\times\{0,1,2\}Conditions: none
Rule: cartesian_product_def · Uses: G1
Leaf basis: cartesian_product_def + finite_counting_basics
The nine points listed in G1 are exactly all ordered pairs of {0,1,2}×{0,1,2}, 3·3=9, with no repetition or omission. Every later conclusion is about these nine points only.
S03 · equivalent
Before
g(x,y)=x+2y\ \text{on }CAfter
\text{mask: }0,2,4,1,3,5,2,4,6\ \Rightarrow\ \text{F,F,T,F,T,T,F,T,T}Conditions: none
Rule: numeric_evaluation · Uses: S02, G2
Leaf basis: numeric_evaluation + order_basics
By the MKO, decide feasibility first. Compute g=x+2y at the nine points in order and compare with 3 to get the feasibility mask; the computation is split into three rows by x in S03.1 to S03.3.
S04 · equivalent
Before
S=\{(x,y)\in C\mid x+2y\ge 3\}After
S=\{(0,2),(1,1),(1,2),(2,1),(2,2)\},\ |S|=5Conditions: none
Rule: set_builder · Uses: S03, G2
Leaf basis: set_builder + set_extensionality
By set-builder notation, S consists exactly of the five points whose mask is true; (0,0), (0,1), (1,0) and (2,0) are infeasible. S is nonempty, so a minimum can exist. In scan order write s_1=(0,2), s_2=(1,1), s_3=(1,2), s_4=(2,1), s_5=(2,2).
S05 · equivalent
Before
f(s_1),f(s_2),f(s_3),f(s_4),f(s_5)
After
2,\ 2,\ 3,\ 3,\ 4
Conditions: none
Rule: numeric_evaluation · Uses: S04, G3
Leaf basis: numeric_evaluation
Compute objective values on feasible points only: f(0,2)=2, f(1,1)=2, f(1,2)=3, f(2,1)=3, f(2,2)=4.
S06 · implies
Before
m_1=f(s_1),\ A_1=\{s_1\}After
m_k=\min_{1\le j\le k}f(s_j),\ A_k=\{s_j\mid 1\le j\le k,\ f(s_j)=m_k\}\ \text{for }k=1,2,3,4,5Conditions: none
Rule: L_scan_invariant · Uses: S04, L_scan_invariant
Leaf basis: nat_induction + case_analysis + order_basics
Scan algorithm: start with m_1=f(s_1) and A_1={s_1} (clearly correct for one point), then update by the three cases of L_scan_invariant. The lemma (proved by cases in S06.1 to S06.3) shows that each update preserves the invariant, so by induction from k=1 to k=5 the invariant always holds. The algorithm stops after processing |S|=5 points.
S07 · implies
Before
k=1:\ s_1=(0,2)
After
m_1=2,\ A_1=\{(0,2)\}Conditions: none
Rule: def_intro · Uses: S05, S06
Leaf basis: def_intro + numeric_evaluation
Trace: the starting point is s_1=(0,2) with f=2, so m_1=2 and A_1={(0,2)}.
S08 · implies
Before
k=2:\ f(1,1)=2=m_1
After
m_2=2,\ A_2=\{(0,2),(1,1)\}Conditions: f(s_2)=m_1
Rule: L_scan_invariant · Uses: S07, S05, L_scan_invariant
Leaf basis: L_scan_invariant
The value 2 of s_2=(1,1) equals the current minimum, which is the tie case (S06.2), so it joins the tie set.
S09 · implies
Before
k=3,4,5:\ f=3,3,4
After
m_5=2,\ A_5=\{(0,2),(1,1)\}Conditions: 3>2,\ 3>2,\ 4>2
Rule: L_scan_invariant · Uses: S08, S05, L_scan_invariant
Leaf basis: L_scan_invariant + order_basics
The remaining three points all fall in the 'larger' case, so m and A do not change; the point-by-point details are in S09.1 to S09.3.
S10 · implies
Before
m_5=2,\ A_5=\{(0,2),(1,1)\}After
m=\min_{s\in S}f(s)=2,\ \operatorname{argmin}=\{(0,2),(1,1)\}Conditions: k=|S|=5
Rule: L_scan_invariant · Uses: S06, S09
Leaf basis: L_scan_invariant + finite_counting_basics
At termination k=5, and the invariant says that m_5 is the minimum of f over s_1 to s_5, that is over all of S, and A_5 is the set of all points attaining it. So the optimal value is m=2 and argmin={(0,2),(1,1)}, with two tied optimal points.
S11 · implies
Before
\forall s\in S:\ f(0,2)\le f(s)\ \land\ f(1,1)\le f(s)
After
(0,2),(1,1)\ \text{satisfy the MKO definition of minimizer}Conditions: none
Rule: mko_opt_def · Uses: S05, S10, mko_opt_def
Leaf basis: mko_opt_def + forall_intro + order_basics
Cross-check directly against the MKO definition: 2≤2, 2≤2, 2≤3, 2≤3, 2≤4; these five comparisons cover every point of S, so (0,2) and (1,1) are both minimizers; the other three points, with values 3, 3 and 4, exceed the value 2 of a feasible point, so they are not minimizers.
S12 · implies
Before
f(0,0)=0<2,\ f(2,0)=2=m
After
(0,0),(2,0)\notin\operatorname{argmin}Conditions: (0,0),(2,0)\notin S
Rule: mko_opt_notes · Uses: S03, S04, mko_opt_notes
Leaf basis: mko_opt_notes + set_builder
By the MKO, an infeasible point cannot be optimal even if its value is better. (0,0) has value 0, below 2, but g(0,0)=0<3; (2,0) has value exactly 2, but g(2,0)=2<3. Neither is in S, so neither is in argmin, and the optimal value does not become 0.
S13 · implies
Before
\max_{s\in S}f(s)After
\max=4,\ \operatorname{argmax}=\{(2,2)\}Conditions: none
Rule: mko_opt_def · Uses: S05, mko_opt_def
Leaf basis: mko_opt_def + order_basics
Maximization reverses the inequality: f(s*)≥f(s) for every s∈S. Comparing one by one: 4≥2, 4≥2, 4≥3, 4≥3, 4≥4, so (2,2) is a maximizer; every other point has a value below 4, so here the maximizer is unique. Uniqueness has to be read off the enumeration: on the minimization side it fails.
S14 · implies
Before
\min\{x+y\mid x,y\in\mathbb{R},\ x,y\ge 0,\ x+2y\ge 3\}After
=\tfrac{3}{2}\ \text{at }(0,\tfrac{3}{2})\notin CConditions: x\ge 0,\ y\ge 0
Rule: order_basics · Uses: G2, G3
Leaf basis: order_basics + distributive
To show that a finite enumeration does not extrapolate: if the candidates are changed to the real nonnegative quadrant, the minimum under the same constraint is 3/2, attained at (0,3/2), which is not in C; the proof is in S14.1 to S14.3. So 'optimal value 2' is a conclusion about the declared nine-point set only.
S15 · implies
Before
\text{proved facts}After
m=2,\ \operatorname{argmin}=\{(0,2),(1,1)\},\ \max=4,\ \operatorname{argmax}=\{(2,2)\}Conditions: none
Rule: and_intro_elim · Uses: S10, S11, S12, S13, S14
Leaf basis: and_intro_elim
Combine the conclusions: among the nine declared points five are feasible; the minimum 2 is attained by (0,2) and (1,1) in a tie; the infeasible (0,0) and (2,0) are excluded; the maximum 4 is attained only by (2,2); these conclusions do not extend to the real feasible region (where the minimum is 3/2).
Substeps and lemmas
S03.1 · equivalent
Before
(0,0),(0,1),(0,2)
After
g=0,2,4;\ \text{feasible only }(0,2)Conditions: none
Rule: numeric_evaluation · Uses: G2
Leaf basis: numeric_evaluation + order_basics
x=0: g(0,0)=0<3, g(0,1)=2<3, g(0,2)=4≥3.
S03.2 · equivalent
Before
(1,0),(1,1),(1,2)
After
g=1,3,5;\ \text{feasible }(1,1),(1,2)Conditions: none
Rule: numeric_evaluation · Uses: G2
Leaf basis: numeric_evaluation + order_basics
x=1: g(1,0)=1<3, g(1,1)=3≥3 (equality is feasible), g(1,2)=5≥3.
S03.3 · equivalent
Before
(2,0),(2,1),(2,2)
After
g=2,4,6;\ \text{feasible }(2,1),(2,2)Conditions: none
Rule: numeric_evaluation · Uses: G2
Leaf basis: numeric_evaluation + order_basics
x=2: g(2,0)=2<3, g(2,1)=4≥3, g(2,2)=6≥3.
S06.1 · implies
Before
f(s_{k+1})<m_kAfter
m_{k+1}=f(s_{k+1}),\ A_{k+1}=\{s_{k+1}\}Conditions: f(s_{k+1})<m_k
Rule: order_basics · Uses: order_basics
Leaf basis: order_basics
If f(s_(k+1))<m_k, then for j≤k we have f(s_j)≥m_k>f(s_(k+1)), so f(s_(k+1)) is the minimum over the first k+1 points, and only s_(k+1) attains it (the others are strictly larger).
S06.2 · implies
Before
f(s_{k+1})=m_kAfter
m_{k+1}=m_k,\ A_{k+1}=A_k\cup\{s_{k+1}\}Conditions: f(s_{k+1})=m_k
Rule: order_basics · Uses: order_basics
Leaf basis: order_basics + set_operations_def
If equal, the minimum does not change and one more point, s_(k+1), attains it: this is a tie. Adding s_(k+1) rather than discarding it is what lets the algorithm report all optimal points.
S06.3 · implies
Before
f(s_{k+1})>m_kAfter
m_{k+1}=m_k,\ A_{k+1}=A_kConditions: f(s_{k+1})>m_k
Rule: order_basics · Uses: order_basics
Leaf basis: order_basics + case_analysis
If larger, the minimum does not change, s_(k+1) does not attain it, and the tie set stays the same. By trichotomy the three cases cover every possibility. S06.1 to S06.3 together prove Lemma L_scan_invariant.
S09.1 · implies
Before
k=3:\ f(1,2)=3
After
3>2:\ m_3=2,\ A_3=A_2
Conditions: 3>2
Rule: L_scan_invariant · Uses: S08, S05, L_scan_invariant
Leaf basis: L_scan_invariant + order_basics
f(1,2)=3>2, no change.
S09.2 · implies
Before
k=4:\ f(2,1)=3
After
3>2:\ m_4=2,\ A_4=A_3
Conditions: 3>2
Rule: L_scan_invariant · Uses: S09.1, S05, L_scan_invariant
Leaf basis: L_scan_invariant + order_basics
f(2,1)=3>2, no change.
S09.3 · implies
Before
k=5:\ f(2,2)=4
After
4>2:\ m_5=2,\ A_5=A_4
Conditions: 4>2
Rule: L_scan_invariant · Uses: S09.2, S05, L_scan_invariant
Leaf basis: L_scan_invariant + order_basics
f(2,2)=4>2, no change. The scan ends.
S14.1 · equivalent
Before
x+y
After
\tfrac{1}{2}(x+2y)+\tfrac{1}{2}xConditions: none
Rule: distributive · Uses: distributive
Leaf basis: distributive + frac_rules
Expanding the right side: x/2+y+x/2=x+y, so this is an identity for all reals (N9).
S14.2 · implies
Before
\tfrac{1}{2}(x+2y)+\tfrac{1}{2}x,\ x+2y\ge 3,\ x\ge 0After
x+y\ge\tfrac{3}{2}Conditions: x\ge 0; x+2y\ge 3
Rule: order_basics · Uses: S14.1, order_basics
Leaf basis: order_basics
From x+2y≥3, (x+2y)/2≥3/2 (multiplying by the positive 1/2); from x≥0, x/2≥0; adding gives x+y≥3/2.
S14.3 · implies
Before
(x,y)=(0,\tfrac{3}{2})After
x+2y=3,\ x+y=\tfrac{3}{2},\ (0,\tfrac{3}{2})\notin CConditions: none
Rule: numeric_evaluation · Uses: S14.2
Leaf basis: numeric_evaluation + exists_intro
(0,3/2) satisfies x,y≥0 and 0+2·(3/2)=3≥3, with value 3/2, so the bound is attained and the minimum of the real relaxation is 3/2. 3/2 is not an integer, so (0,3/2) is not in C.