Description: Define a multifunction restriction operator for extensible structures, which can be used to turn statements about rings into statements about subrings, modules into submodules, etc. This definition knows nothing about individual structures and merely truncates the Base set while leaving operators alone; individual kinds of structures will need to handle this behavior, by ignoring operators' values outside the range (like Ring ), defining a function using the base set and applying that (like TopGrp ), or explicitly truncating the slot before use (like MetSp ).
(Credit for this operator goes to Mario Carneiro.)
See ressbas for the altered base set, and resseqnbas ( subrg0 , ressplusg , subrg1 , ressmulr ) for the (un)altered other operations. (Contributed by Stefan O'Rear, 29-Nov-2014)
Ref | Expression | ||
---|---|---|---|
Assertion | df-ress | |- |`s = ( w e. _V , x e. _V |-> if ( ( Base ` w ) C_ x , w , ( w sSet <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. ) ) ) |
Step | Hyp | Ref | Expression |
---|---|---|---|
0 | cress | |- |`s |
|
1 | vw | |- w |
|
2 | cvv | |- _V |
|
3 | vx | |- x |
|
4 | cbs | |- Base |
|
5 | 1 | cv | |- w |
6 | 5 4 | cfv | |- ( Base ` w ) |
7 | 3 | cv | |- x |
8 | 6 7 | wss | |- ( Base ` w ) C_ x |
9 | csts | |- sSet |
|
10 | cnx | |- ndx |
|
11 | 10 4 | cfv | |- ( Base ` ndx ) |
12 | 7 6 | cin | |- ( x i^i ( Base ` w ) ) |
13 | 11 12 | cop | |- <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. |
14 | 5 13 9 | co | |- ( w sSet <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. ) |
15 | 8 5 14 | cif | |- if ( ( Base ` w ) C_ x , w , ( w sSet <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. ) ) |
16 | 1 3 2 2 15 | cmpo | |- ( w e. _V , x e. _V |-> if ( ( Base ` w ) C_ x , w , ( w sSet <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. ) ) ) |
17 | 0 16 | wceq | |- |`s = ( w e. _V , x e. _V |-> if ( ( Base ` w ) C_ x , w , ( w sSet <. ( Base ` ndx ) , ( x i^i ( Base ` w ) ) >. ) ) ) |