# Question 11175: Linear Halfspace Closure at Qualified Endpoints

[Return to catalogue page 56](https://ocme.evemisslab.com/en/questions/page/56/)

[← Question derivation index](https://ocme.evemisslab.com/en/questions/) · [Original question batch](https://ocme.evemisslab.com/en/practice/batch-20261013-advance-20261024-r07-convex-set-foundations/#q-20261013-advance-20261024-r07-convex-set-0075)

This teaching derivation has second-context AI mathematical and bilingual semantic review, limited to the model and assumptions stated in this question. It has no human review or new Lean proof and does not promote the original question or MKO to Canonical truth.

R0021-11175 · q-20261013-advance-20261024-r07-convex-set-0075



## Original question and givens

Convexity means every pair of set members and every lambda in [0,1] has lambda*left+(1−lambda)*right in the set. Positive cases use complete algebraic certificates, not sampled lambda values. One exact counterexample suffices to refute convexity; a failed counterexample does not prove convexity. normal=[1, 1], bound=26, left=[0, 0], right=[25, 0], lambda=25/27∈[0,1]. Both endpoints must satisfy normal·point≤bound. Give (normal,bound,left,right,left dot product,right dot product,lambda,weighted point,its dot product,inside?). Use exact rational arithmetic, reduce fractions to positive denominators and omit /1 for integer outputs.


- G001 — Convexity means every pair of set members and every lambda in [0,1] has lambda*left+(1−lambda)*right in the set. Positive cases use complete algebraic certificates, not sampled lambda values. One exact counterexample suffices to refute convexity; a failed counterexample does not prove convexity. normal=[1, 1], bound=26, left=[0, 0], right=[25, 0], lambda=25/27∈[0,1]. Both endpoints must satisfy normal·point≤bound. Give (normal,bound,left,right,left dot product,right dot product,lambda,weighted point,its dot product,inside?). Use exact rational arithmetic, reduce fractions to positive denominators and omit /1 for integer outputs.





## Definition and scope

Use the original question domain, assumptions and cited MKO definitions. This item has second-context mathematical and bilingual review, with the model, answer and every arithmetic step independently recomputed from the original parameters; the source question remains a candidate.


- [mko-convex-set](https://ocme.evemisslab.com/en/mko/mko-convex-set/)





## Step-by-step derivation

S001 · calculationBefore

left endpoint dot term0 := mul(1, 0)

After

left endpoint dot term0 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001





S002 · calculationBefore

left endpoint dot term1 := mul(1, 0)

After

left endpoint dot term1 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S001





S003 · calculationBefore

left endpoint dot sum := sum(0, 0)

After

left endpoint dot sum = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S002





S004 · calculationBefore

right endpoint dot term0 := mul(1, 25)

After

right endpoint dot term0 = 25

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S003





S005 · calculationBefore

right endpoint dot term1 := mul(1, 0)

After

right endpoint dot term1 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S004





S006 · calculationBefore

right endpoint dot sum := sum(25, 0)

After

right endpoint dot sum = 25

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S005





S007 · impliesBefore

normal=[1, 1];bound=26;left dot=0;right dot=25

After

both endpoints satisfy the closed halfspace inequality

Conditions: none

First qualify both endpoint memberships.Do not infer them from the desired convexity;the same inequality also handles a zero normal.

Step identifiers and dependenciesRule: halfspace_endpoint_membership · Uses: G001, S006





S008 · calculationBefore

halfspace point complementary weight := sub(1, 25/27)

After

halfspace point complementary weight = 2/27

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S007





S009 · impliesBefore

halfspace point:raw lambda=[25, 27];lambda=25/27;one-minus-lambda=2/27

After

in_closed_unit_interval=Yes;lambda weights left

Conditions: none

Lambda weights the left endpoint and1−lambda the right.Lambda0 selects right,1 selects left.Outside values still define the affine expression,but not a convex combination;do not clip.

Step identifiers and dependenciesRule: two_point_direction_and_qualification · Uses: G001, S008





S010 · impliesBefore

halfspace point:ordered vectors=[[0, 0], [25, 0]];aligned weights=[25/27, 2/27]

After

dimension=2;preserve duplicates and order

Conditions: none

Preserve vector order,duplicates and coefficient pairing.Sum every vector's contribution within the same coordinate.

Step identifiers and dependenciesRule: ordered_vector_weight_pairing · Uses: G001, S009





S011 · calculationBefore

halfspace point coordinate0 term0 := mul(25/27, 0)

After

halfspace point coordinate0 term0 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S010





S012 · calculationBefore

halfspace point coordinate0 term1 := mul(2/27, 25)

After

halfspace point coordinate0 term1 = 50/27

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S011





S013 · calculationBefore

halfspace point coordinate0 sum := sum(0, 50/27)

After

halfspace point coordinate0 sum = 50/27

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S012





S014 · calculationBefore

halfspace point coordinate1 term0 := mul(25/27, 0)

After

halfspace point coordinate1 term0 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S013





S015 · calculationBefore

halfspace point coordinate1 term1 := mul(2/27, 0)

After

halfspace point coordinate1 term1 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S014





S016 · calculationBefore

halfspace point coordinate1 sum := sum(0, 0)

After

halfspace point coordinate1 sum = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S015





S017 · calculationBefore

combined point dot term0 := mul(1, 50/27)

After

combined point dot term0 = 50/27

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S016





S018 · calculationBefore

combined point dot term1 := mul(1, 0)

After

combined point dot term1 = 0

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S017





S019 · calculationBefore

combined point dot sum := sum(50/27, 0)

After

combined point dot sum = 50/27

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S018





S020 · calculationBefore

halfspace bound slack := sub(26, 50/27)

After

halfspace bound slack = 652/27

Conditions: none

Compute exactly with this step's specified roles,retaining signs,denominators and original pairings.

Step identifiers and dependenciesRule: exact_rational_arithmetic · Uses: G001, S019





S021 · impliesBefore

normal dot z=50/27;endpoint dots=(0,25);lambda=25/27;bound=26

After

normal dot z=lambda*0+(1-lambda)*25<=26;inside=Yes

Conditions: none

Linearity makes the new dot product a nonnegative unit-weighted sum of endpoint values.Each is≤bound,so the result is≤bound.This algebraic reason is universal;the numbers instantiate it.

Step identifiers and dependenciesRule: halfspace_linear_universal_reason · Uses: G001, S020









## Reverse checks


- S021 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S020 · premise_and_result_audit — Recompute halfspace bound slack with exact rational arithmetic, not rounded decimals.
- S019 · premise_and_result_audit — Recompute combined point dot sum with exact rational arithmetic, not rounded decimals.
- S018 · premise_and_result_audit — Recompute combined point dot term1 with exact rational arithmetic, not rounded decimals.
- S017 · premise_and_result_audit — Recompute combined point dot term0 with exact rational arithmetic, not rounded decimals.
- S016 · premise_and_result_audit — Recompute halfspace point coordinate1 sum with exact rational arithmetic, not rounded decimals.
- S015 · premise_and_result_audit — Recompute halfspace point coordinate1 term1 with exact rational arithmetic, not rounded decimals.
- S014 · premise_and_result_audit — Recompute halfspace point coordinate1 term0 with exact rational arithmetic, not rounded decimals.
- S013 · premise_and_result_audit — Recompute halfspace point coordinate0 sum with exact rational arithmetic, not rounded decimals.
- S012 · premise_and_result_audit — Recompute halfspace point coordinate0 term1 with exact rational arithmetic, not rounded decimals.
- S011 · premise_and_result_audit — Recompute halfspace point coordinate0 term0 with exact rational arithmetic, not rounded decimals.
- S010 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S009 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S008 · premise_and_result_audit — Recompute halfspace point complementary weight with exact rational arithmetic, not rounded decimals.
- S007 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
- S006 · premise_and_result_audit — Recompute right endpoint dot sum with exact rational arithmetic, not rounded decimals.
- S005 · premise_and_result_audit — Recompute right endpoint dot term1 with exact rational arithmetic, not rounded decimals.
- S004 · premise_and_result_audit — Recompute right endpoint dot term0 with exact rational arithmetic, not rounded decimals.
- S003 · premise_and_result_audit — Recompute left endpoint dot sum with exact rational arithmetic, not rounded decimals.
- S002 · premise_and_result_audit — Recompute left endpoint dot term1 with exact rational arithmetic, not rounded decimals.
- S001 · premise_and_result_audit — Recompute left endpoint dot term0 with exact rational arithmetic, not rounded decimals.





## Result

([1, 1], 26, [0, 0], [25, 0], 0, 25, 25/27, [50/27, 0], 50/27, Yes)

The full substitutions and premise checks give the original answer; source identity,format and status are unchanged.





## This question review and source binding

Review date: 2026-10-26

Original questions, answers, step expressions, numeric ASTs and historical records are retained. Source candidate labels remain historical and are not overwritten as formal proof.

Source hashes and review receipts
- input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
- original question SHA-256: af916b7bed29aa6d22427d56df99e83097725e6e0d03f520170d7effad05782e
- candidate record SHA-256: 775319206209da585444b10d26e9b968bdd480dca30d33530ae4e40b9031489e
- semantic review receipt SHA-256: 47d23d3735987d68e27733b051bdfa80a3616d44fb223b82bf2e6c8e46d49258
- question-first witness SHA-256: a857db558000724020d2d5e815cb6bc3e2c9e2933df295bf33eb478d3c695139
- Lean: NOT_RUN · human review: NOT_PERFORMED

[Same-source full JSON](https://ocme.evemisslab.com/data/question-derivations/questions/q-20261013-advance-20261024-r07-convex-set-0075.json)




