Step-by-step derivation
S001 · implies
Before
source roles = [product-projection-continuity]
After
derived = [[first_preimage_audit, second_preimage_audit, first_continuous, second_continuous, valid, certificate]]
Conditions: none
List this operation/mode exact source field order without JavaScript.Keep Boolean,string and null roles distinct;do not pad fields or infer the interface from answer shape.
Step identifiers and dependencies
Rule: source_ordered_fields_without_JS · Uses: G001
S002 · implies
Before
source roles = [product ORIGINAL X, [0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 2]], No]
After
derived = [[0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 2]], [[0, 0, 0, 0, Yes, Yes], [0, 1, 15, 0, Yes, Yes], [0, 2, 5, 0, Yes, Yes], [1, 0, 15, 0, Yes, Yes], [1, 1, 15, 15, Yes, Yes], [1, 2, 15, 5, Yes, Yes], [2, 0, 5, 0, Yes, Yes], [2, 1, 15, 5, Yes, Yes], [2, 2, 5, 5, Yes, Yes]]]
Conditions: none
Retain JSON types and English source ordering of sets and open families.Check union/intersection for every open pair and empty/full sets;in a finite family binary closure gives arbitrary-union closure,not sampled qualification.
Step identifiers and dependencies
Rule: Topology_full_typed_carrier_and_ALL_pair_axioms · Uses: G001, S001
S003 · implies
Before
source roles = [product ORIGINAL Y, [100, 101], [[], [100, 101]], No]
After
derived = [[100, 101], [[], [100, 101]], [[0, 0, 0, 0, Yes, Yes], [0, 1, 3, 0, Yes, Yes], [1, 0, 3, 0, Yes, Yes], [1, 1, 3, 3, Yes, Yes]]]
Conditions: none
Retain JSON types and English source ordering of sets and open families.Check union/intersection for every open pair and empty/full sets;in a finite family binary closure gives arbitrary-union closure,not sampled qualification.
Step identifiers and dependencies
Rule: Topology_full_typed_carrier_and_ALL_pair_axioms · Uses: G001, S002
S004 · implies
Before
source roles = [[0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 2]], [100, 101], [[], [100, 101]]]
After
derived = [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []]]
Conditions: none
List every typed ordered pair and every basic rectangle U times V,deduplicating empty rectangles.The rectangle bound is a source-computation profile,not a theorem limitation.
Step identifiers and dependencies
Rule: Product_typed_cartesian_carrier_AND_ALL_basic_rectangles · Uses: G001, S003
S005 · implies
Before
source roles = [0, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[]]]
After
derived = [[[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], []]]
Conditions: none
When adding this rectangle retain every old union and its union with the rectangle.Inductively this gives all unions of rectangle subfamilies,not just rectangles as opens.
Step identifiers and dependencies
Rule: Product_EACH_rectangle_ALL_unions_induction · Uses: G001, S004
S006 · implies
Before
source roles = [1, [[0, 100], [0, 101], [2, 100], [2, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], []]]
After
derived = [[[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []]]
Conditions: none
When adding this rectangle retain every old union and its union with the rectangle.Inductively this gives all unions of rectangle subfamilies,not just rectangles as opens.
Step identifiers and dependencies
Rule: Product_EACH_rectangle_ALL_unions_induction · Uses: G001, S005
S007 · implies
Before
source roles = [2, [], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []]]
After
derived = [[[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []]]
Conditions: none
When adding this rectangle retain every old union and its union with the rectangle.Inductively this gives all unions of rectangle subfamilies,not just rectangles as opens.
Step identifiers and dependencies
Rule: Product_EACH_rectangle_ALL_unions_induction · Uses: G001, S006
S008 · implies
Before
source roles = [product GENERATED all-union topology, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []], Yes]
After
derived = [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []], [[0, 0, 255, 255, Yes, Yes], [0, 1, 255, 51, Yes, Yes], [0, 2, 255, 0, Yes, Yes], [1, 0, 255, 51, Yes, Yes], [1, 1, 51, 51, Yes, Yes], [1, 2, 51, 0, Yes, Yes], [2, 0, 255, 0, Yes, Yes], [2, 1, 51, 0, Yes, Yes], [2, 2, 0, 0, Yes, Yes]]]
Conditions: none
Retain JSON types and English source ordering of sets and open families.Check union/intersection for every open pair and empty/full sets;in a finite family binary closure gives arbitrary-union closure,not sampled qualification.
Step identifiers and dependencies
Rule: Topology_full_typed_carrier_and_ALL_pair_axioms · Uses: G001, S007
S009 · implies
Before
source roles = [product first projection, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []], [0, 1, 2, 3], [[], [0, 1, 2, 3], [0, 2]], [[[0, 100], 0], [[0, 101], 0], [[1, 100], 1], [[1, 101], 1], [[2, 100], 2], [[2, 101], 2], [[3, 100], 3], [[3, 101], 3]]]
After
derived = [[[[], [], Yes], [[0, 1, 2, 3], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], Yes], [[0, 2], [[0, 100], [0, 101], [2, 100], [2, 101]], Yes]], Yes]
Conditions: none
Test full preimages of every target open,not just points,open images or samples.Align images with the ORIGINAL domain before sorting the rows.
Step identifiers and dependencies
Rule: Continuity_ALL_target_open_preimages · Uses: G001, S008
S010 · implies
Before
source roles = [product second projection, [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], [[0, 100], [0, 101], [2, 100], [2, 101]], []], [100, 101], [[], [100, 101]], [[[0, 100], 100], [[0, 101], 101], [[1, 100], 100], [[1, 101], 101], [[2, 100], 100], [[2, 101], 101], [[3, 100], 100], [[3, 101], 101]]]
After
derived = [[[[], [], Yes], [[100, 101], [[0, 100], [0, 101], [1, 100], [1, 101], [2, 100], [2, 101], [3, 100], [3, 101]], Yes]], Yes]
Conditions: none
Test full preimages of every target open,not just points,open images or samples.Align images with the ORIGINAL domain before sorting the rows.
Step identifiers and dependencies
Rule: Continuity_ALL_target_open_preimages · Uses: G001, S009