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   set while
       leaving operators alone; individual kinds of structures will need to
       handle this behavior, by ignoring operators' values outside the range,
       defining a function using the base set and applying that, or explicitly
       truncating the slot before use.
       (Credit for this operator, as well as the 2023 modification for iset.mm,
       goes to Mario Carneiro.)
 
       (Contributed by Stefan O'Rear, 29-Nov-2014.)  (Revised by Jim Kingdon,
       7-Oct-2023.)  |