Explore related knowledge and questions →

Question 8992: Both Parenthesizations of a Three-Input GCD

On this page
  1. Original question and givens
  2. Definition and scope
  3. Step-by-step derivation
  4. Reverse checks
  5. Result
  6. This question review and source binding

Return to catalogue page 45

← Question derivation index · Original question batch

R0016-08992 · q-20261013-advance-20261018-r03-gcd-coprime-0092

Original question and givens

Natural inputs a=28, b=50, c=78, with gcd(0,0)=0. Give (a, b, c, gcd(gcd(a,b),c), gcd(a,gcd(b,c)), are the results equal?).

  • G001 — Natural inputs a=28, b=50, c=78, with gcd(0,0)=0. Give (a, b, c, gcd(gcd(a,b),c), gcd(a,gcd(b,c)), are the results equal?).

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.

Step-by-step derivation

S001 · implies

Before

natural triple=[28, 50, 78];gcd(0,0)=0

After

compute both complete parenthesizations

Conditions: none

Compute both actual Euclidean routes rather than repeating the associativity conclusion.Inputs may include0.

Step identifiers and dependencies

Rule: gcd_two_routes_scope · Uses: G001

S002 · implies

Before

left inner gcd(a,b) Euclid row0:divide natural 28 by positive 50

After

28=0·50+28

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S001

S003 · implies

Before

phase=left inner gcd(a,b);pair=[28, 50];quotient=0;remainder=28

After

next pair=[50, 28];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S002

S004 · implies

Before

left inner gcd(a,b) Euclid row1:divide natural 50 by positive 28

After

50=1·28+22

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S003

S005 · implies

Before

phase=left inner gcd(a,b);pair=[50, 28];quotient=1;remainder=22

After

next pair=[28, 22];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S004

S006 · implies

Before

left inner gcd(a,b) Euclid row2:divide natural 28 by positive 22

After

28=1·22+6

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S005

S007 · implies

Before

phase=left inner gcd(a,b);pair=[28, 22];quotient=1;remainder=6

After

next pair=[22, 6];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S006

S008 · implies

Before

left inner gcd(a,b) Euclid row3:divide natural 22 by positive 6

After

22=3·6+4

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S007

S009 · implies

Before

phase=left inner gcd(a,b);pair=[22, 6];quotient=3;remainder=4

After

next pair=[6, 4];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S008

S010 · implies

Before

left inner gcd(a,b) Euclid row4:divide natural 6 by positive 4

After

6=1·4+2

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S009

S011 · implies

Before

phase=left inner gcd(a,b);pair=[6, 4];quotient=1;remainder=2

After

next pair=[4, 2];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S010

S012 · implies

Before

left inner gcd(a,b) Euclid row5:divide natural 4 by positive 2

After

4=2·2+0

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S011

S013 · implies

Before

phase=left inner gcd(a,b);pair=[4, 2];quotient=2;remainder=0

After

next pair=[2, 0];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S012

S014 · implies

Before

phase=left inner gcd(a,b);terminal pair=[2, 0]

After

gcd=2

Conditions: none

At termination gcd(x,0)=x,including the natural convention gcd(0,0)=0.Never take a remainder modulo0,and do not infer that both inputs are prime.

Step identifiers and dependencies

Rule: gcd_terminal_zero_convention · Uses: G001, S013

S015 · implies

Before

left outer gcd(ab,c) Euclid row0:divide natural 2 by positive 78

After

2=0·78+2

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S014

S016 · implies

Before

phase=left outer gcd(ab,c);pair=[2, 78];quotient=0;remainder=2

After

next pair=[78, 2];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S015

S017 · implies

Before

left outer gcd(ab,c) Euclid row1:divide natural 78 by positive 2

After

78=39·2+0

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S016

S018 · implies

Before

phase=left outer gcd(ab,c);pair=[78, 2];quotient=39;remainder=0

After

next pair=[2, 0];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S017

S019 · implies

Before

phase=left outer gcd(ab,c);terminal pair=[2, 0]

After

gcd=2

Conditions: none

At termination gcd(x,0)=x,including the natural convention gcd(0,0)=0.Never take a remainder modulo0,and do not infer that both inputs are prime.

Step identifiers and dependencies

Rule: gcd_terminal_zero_convention · Uses: G001, S018

S020 · implies

Before

right inner gcd(b,c) Euclid row0:divide natural 50 by positive 78

After

50=0·78+50

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S019

S021 · implies

Before

phase=right inner gcd(b,c);pair=[50, 78];quotient=0;remainder=50

After

next pair=[78, 50];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S020

S022 · implies

Before

right inner gcd(b,c) Euclid row1:divide natural 78 by positive 50

After

78=1·50+28

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S021

S023 · implies

Before

phase=right inner gcd(b,c);pair=[78, 50];quotient=1;remainder=28

After

next pair=[50, 28];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S022

S024 · implies

Before

right inner gcd(b,c) Euclid row2:divide natural 50 by positive 28

After

50=1·28+22

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S023

S025 · implies

Before

phase=right inner gcd(b,c);pair=[50, 28];quotient=1;remainder=22

After

next pair=[28, 22];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S024

S026 · implies

Before

right inner gcd(b,c) Euclid row3:divide natural 28 by positive 22

After

28=1·22+6

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S025

S027 · implies

Before

phase=right inner gcd(b,c);pair=[28, 22];quotient=1;remainder=6

After

next pair=[22, 6];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S026

S028 · implies

Before

right inner gcd(b,c) Euclid row4:divide natural 22 by positive 6

After

22=3·6+4

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S027

S029 · implies

Before

phase=right inner gcd(b,c);pair=[22, 6];quotient=3;remainder=4

After

next pair=[6, 4];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S028

S030 · implies

Before

right inner gcd(b,c) Euclid row5:divide natural 6 by positive 4

After

6=1·4+2

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S029

S031 · implies

Before

phase=right inner gcd(b,c);pair=[6, 4];quotient=1;remainder=2

After

next pair=[4, 2];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S030

S032 · implies

Before

right inner gcd(b,c) Euclid row6:divide natural 4 by positive 2

After

4=2·2+0

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S031

S033 · implies

Before

phase=right inner gcd(b,c);pair=[4, 2];quotient=2;remainder=0

After

next pair=[2, 0];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S032

S034 · implies

Before

phase=right inner gcd(b,c);terminal pair=[2, 0]

After

gcd=2

Conditions: none

At termination gcd(x,0)=x,including the natural convention gcd(0,0)=0.Never take a remainder modulo0,and do not infer that both inputs are prime.

Step identifiers and dependencies

Rule: gcd_terminal_zero_convention · Uses: G001, S033

S035 · implies

Before

right outer gcd(a,bc) Euclid row0:divide natural 28 by positive 2

After

28=14·2+0

Conditions: none

A positive divisor gives a unique quotient/remainder with0≤r<divisor.The full equality audits both values without division by zero.

Step identifiers and dependencies

Rule: natural_euclidean_division_witness · Uses: G001, S034

S036 · implies

Before

phase=right outer gcd(a,bc);pair=[28, 2];quotient=14;remainder=0

After

next pair=[2, 0];0<=remainder<divisor

Conditions: none

From x=q*y+r,a number divides both x,y exactly when it divides both y,r.The remainder is strictly smaller than the positive divisor,so the second argument eventually becomes0.

Step identifiers and dependencies

Rule: gcd_common_divisor_invariance · Uses: G001, S035

S037 · implies

Before

phase=right outer gcd(a,bc);terminal pair=[2, 0]

After

gcd=2

Conditions: none

At termination gcd(x,0)=x,including the natural convention gcd(0,0)=0.Never take a remainder modulo0,and do not infer that both inputs are prime.

Step identifiers and dependencies

Rule: gcd_terminal_zero_convention · Uses: G001, S036

S038 · implies

Before

gcd(a,b)=2;gcd(b,c)=2

After

left=2;right=2;equal=Yes

Conditions: none

Feed each inner result into its own outer route and compare.The general reason is equality of the three-number common-divisor sets,but this instance retains the actual quotient/remainder witnesses.

Step identifiers and dependencies

Rule: gcd_parenthesizations_actual_comparison · Uses: G001, S037

Reverse checks

  • S038 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S037 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S036 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S035 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S034 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S033 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S032 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S031 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S030 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S029 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S028 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S027 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S026 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S025 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S024 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S023 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S022 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • 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 — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S019 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S018 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S017 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S016 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S015 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S014 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S013 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S012 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S011 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • 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 — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • 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 — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S005 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S004 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S003 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S002 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S001 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.

Result

(28, 50, 78, 2, 2, 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: ad0a508984c7c0dfd70f2757b5cf8e9df5d47f954ab110469bda022a5a3d0fe4
  • candidate record SHA-256: 906ff8a5ef527fa8af9a3d0e96b529832a9e24c7cb174f4cc2022189ff751d1f
  • semantic review receipt SHA-256: 00fcddb10a9fb0f56697308976a52e68e2537472bd8e68ecbe96d3c4553f4ad2
  • question-first witness SHA-256: 198e04380b2d32aef2375b07ca0df1f8afa454d1184993173fad8a3c9187a3d1
  • Lean: NOT_RUN · human review: NOT_PERFORMED
Same-source full JSON