Step-by-step derivation
S001 · implies
Before
source roles = [regex-ast-qualification]
After
derived = [[alphabet, canonical_typed_AST, AST_qualified, qualification_statement]]
Conditions: none
List the complete operation/mode field order without JavaScript or answer-shape inference;Boolean,string,null and an unclaimed result remain distinct.
Step identifiers and dependencies
Rule: source_ordered_fields_without_JS · Uses: G001
S002 · implies
Before
source roles = [root.children[0].children[0], [a, b, c], {'type': 'symbol', 'value': 'c'}]After
derived = [{'type': 'symbol', 'value': 'c'}, {type:"symbol",value:"c"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S001
S003 · implies
Before
source roles = [root.children[0].children[1], [a, b, c], {'type': 'symbol', 'value': 'a'}]After
derived = [{'type': 'symbol', 'value': 'a'}, {type:"symbol",value:"a"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S002
S004 · implies
Before
source roles = [root.children[0].children[2], [a, b, c], {'type': 'symbol', 'value': 'b'}]After
derived = [{'type': 'symbol', 'value': 'b'}, {type:"symbol",value:"b"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S003
S005 · implies
Before
source roles = [root.children[0].children[3], [a, b, c], {'type': 'symbol', 'value': 'c'}]After
derived = [{'type': 'symbol', 'value': 'c'}, {type:"symbol",value:"c"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S004
S006 · implies
Before
source roles = [root.children[0], [a, b, c], {'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}, {'type': 'symbol', 'value': 'c'}]}]After
derived = [{'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}, {'type': 'symbol', 'value': 'c'}]}, {children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"},{type:"symbol",value:"c"}],type:"concat"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S005
S007 · implies
Before
source roles = [root.children[1].child, [a, b, c], {'type': 'symbol', 'value': 'a'}]After
derived = [{'type': 'symbol', 'value': 'a'}, {type:"symbol",value:"a"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S006
S008 · implies
Before
source roles = [root.children[1], [a, b, c], {'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}]After
derived = [{'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}, {child:{type:"symbol",value:"a"},type:"star"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S007
S009 · implies
Before
source roles = [root, [a, b, c], {'type': 'union', 'children': [{'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}, {'type': 'symbol', 'value': 'c'}]}, {'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}]}]After
derived = [{'type': 'union', 'children': [{'type': 'star', 'child': {'type': 'symbol', 'value': 'a'}}, {'type': 'concat', 'children': [{'type': 'symbol', 'value': 'c'}, {'type': 'symbol', 'value': 'a'}, {'type': 'symbol', 'value': 'b'}, {'type': 'symbol', 'value': 'c'}]}]}, {children:[{child:{type:"symbol",value:"a"},type:"star"},{children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"},{type:"symbol",value:"c"}],type:"concat"}],type:"union"}]Conditions: none
For EACH node qualify type,exact keys and symbol membership.A union checks raw arity>=2 BEFORE extensional deduplication,so its canonical form may have one child.Concatenation retains order and star retains its child.Do not revalidate canonical output as raw input with a new arity gate.
Step identifiers and dependencies
Rule: Regex_EACH_typed_node_exact_keys_symbol_scope_union_set_concat_order · Uses: G001, S008
Result
([a, b, c], {children:[{child:{type:"symbol",value:"a"},type:"star"},{children:[{type:"symbol",value:"c"},{type:"symbol",value:"a"},{type:"symbol",value:"b"},{type:"symbol",value:"c"}],type:"concat"}],type:"union"}, Yes, typed_AST_symbols_in_alphabet)The full substitutions and premise checks give the original answer; source identity,format and status are unchanged.