# Question 12452: Invariant Mismatch Can Refute; a Match Does Not Prove

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

[← Question derivation index](https://ocme.evemisslab.com/en/questions/) · [Original question batch](https://ocme.evemisslab.com/en/practice/batch-20261013-advance-20261026-r06-graph-isomorphism-foundations/#q-20261013-advance-20261026-r06-graph-isomorphism-0077)

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.

R0023-12452 · q-20261013-advance-20261026-r06-graph-isomorphism-0077



## Original question and givens

Use complete simple undirected source graph with left_n=6, edges=[[0, 2]], and target with right_n=6, edges=[[0, 2], [0, 4], [1, 3]]. Give (left_n,left_degree_multiset,right_n,right_degree_multiset,mismatch?,conclusion). Sort each degree multiset increasingly. The conclusion is nonisomorphic_certificate for a size or degree mismatch, otherwise necessary-conditions-do-not-prove-isomorphism.


- G001 — Use complete simple undirected source graph with left_n=6, edges=[[0, 2]], and target with right_n=6, edges=[[0, 2], [0, 4], [1, 3]]. Give (left_n,left_degree_multiset,right_n,right_degree_multiset,mismatch?,conclusion). Sort each degree multiset increasingly. The conclusion is nonisomorphic_certificate for a size or degree mismatch, otherwise necessary-conditions-do-not-prove-isomorphism.





## 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-graph-isomorphism](https://ocme.evemisslab.com/en/mko/mko-graph-isomorphism/)





## Step-by-step derivation

S001 · impliesBefore

source graph:carrier Fin(6);raw undirected edges=[[0, 2]]

After

canonical simple edges=[[0, 2]];loops and repeated undirected edges absent

Conditions: none

Normalize each edge with its smaller endpoint first,then sort.Reversed duplicates remain invalid rather than being silently removed.Preserve every isolated vertex.

Step identifiers and dependenciesRule: complete_simple_graph_canonical_edges · Uses: G001





S002 · impliesBefore

target graph:carrier Fin(6);raw undirected edges=[[0, 2], [0, 4], [1, 3]]

After

canonical simple edges=[[0, 2], [0, 4], [1, 3]];loops and repeated undirected edges absent

Conditions: none

Normalize each edge with its smaller endpoint first,then sort.Reversed duplicates remain invalid rather than being silently removed.Preserve every isolated vertex.

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





S003 · impliesBefore

source graph:vertex=0;complete canonical edges=[[0, 2]]

After

neighbors=[2];degree=1

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S004 · impliesBefore

source graph:vertex=1;complete canonical edges=[[0, 2]]

After

neighbors=[];degree=0

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S005 · impliesBefore

source graph:vertex=2;complete canonical edges=[[0, 2]]

After

neighbors=[0];degree=1

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S006 · impliesBefore

source graph:vertex=3;complete canonical edges=[[0, 2]]

After

neighbors=[];degree=0

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S007 · impliesBefore

source graph:vertex=4;complete canonical edges=[[0, 2]]

After

neighbors=[];degree=0

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S008 · impliesBefore

source graph:vertex=5;complete canonical edges=[[0, 2]]

After

neighbors=[];degree=0

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S009 · impliesBefore

source graph:degrees in vertex order=[1, 0, 1, 0, 0, 0]

After

sorted degree multiset=[0, 0, 0, 0, 1, 1]

Conditions: none

Sort numerically into a multiset.Do not deduplicate repeated degrees;distinguish vertex order from invariant order.

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





S010 · impliesBefore

target graph:vertex=0;complete canonical edges=[[0, 2], [0, 4], [1, 3]]

After

neighbors=[2, 4];degree=2

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S011 · impliesBefore

target graph:vertex=1;complete canonical edges=[[0, 2], [0, 4], [1, 3]]

After

neighbors=[3];degree=1

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S012 · impliesBefore

target graph:vertex=2;complete canonical edges=[[0, 2], [0, 4], [1, 3]]

After

neighbors=[0];degree=1

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S013 · impliesBefore

target graph:vertex=3;complete canonical edges=[[0, 2], [0, 4], [1, 3]]

After

neighbors=[1];degree=1

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S014 · impliesBefore

target graph:vertex=4;complete canonical edges=[[0, 2], [0, 4], [1, 3]]

After

neighbors=[0];degree=1

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S015 · impliesBefore

target graph:vertex=5;complete canonical edges=[[0, 2], [0, 4], [1, 3]]

After

neighbors=[];degree=0

Conditions: none

In a loop-free duplicate-free graph,the neighbor count is the degree.Vertices absent from every edge still have degree0.

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





S016 · impliesBefore

target graph:degrees in vertex order=[2, 1, 1, 1, 1, 0]

After

sorted degree multiset=[0, 1, 1, 1, 1, 2]

Conditions: none

Sort numerically into a multiset.Do not deduplicate repeated degrees;distinguish vertex order from invariant order.

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





S017 · impliesBefore

source size=6;degree multiset=[0, 0, 0, 0, 1, 1];target size=6;degree multiset=[0, 1, 1, 1, 1, 2]

After

invariant mismatch=Yes;conclusion=nonisomorphic_certificate

Conditions: none

An isomorphism preserves vertex count and bijects each vertex's neighbors with its image's neighbors,hence preserves the degree multiset.Any mismatch refutes it.A match passes necessary conditions only and supplies no isomorphism map.

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









## Reverse checks


- 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

(6, [0, 0, 0, 0, 1, 1], 6, [0, 1, 1, 1, 1, 2], Yes, nonisomorphic_certificate)

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: 5646442fab8de1854b88522f17b66c5b1afb4ba052b08791bc0e4b2623facd8b
- candidate record SHA-256: 06fe6a03fe35bac4982cd116d719d78fcd7fbc29d990f67d63b483687a324784
- semantic review receipt SHA-256: f783e81f44ff0faa13dbf948657e9187244a59a809ebdf96f22cca24966649ff
- question-first witness SHA-256: 49a50ed0550be55124d6562260c2ccf4fa6d3f316d7ad9d0d32174400e362e18
- Lean: NOT_RUN · human review: NOT_PERFORMED

[Same-source full JSON](https://ocme.evemisslab.com/data/question-derivations/questions/q-20261013-advance-20261026-r06-graph-isomorphism-0077.json)




