Article SCMNORM, MML version 4.99.1005

:: SCMNORM:condreg 1
registration
  let a1 be set;
  let a2 be AMI-Struct over NAT,a1;
  cluster -> natural (Instruction-Location of a2);
end;

:: SCMNORM:funcnot 1 => ORDINAL1:func 1
notation
  let a1 be set;
  let a2 be AMI-Struct over NAT,a1;
  let a3 be Instruction-Location of a2;
  synonym Next a3 for succ a1;
end;

:: SCMNORM:funcnot 2 => SCMNORM:func 1
definition
  let a1 be set;
  let a2 be AMI-Struct over NAT,a1;
  let a3 be Instruction-Location of a2;
  redefine func Next a3 -> Instruction-Location of a2;
end;

:: SCMNORM:funcnot 3 => SCMNORM:func 2
definition
  let a1 be set;
  let a2 be AMI-Struct over NAT,a1;
  let a3 be Instruction-Location of a2;
  let a4 be natural set;
  redefine func a3 + a4 -> Instruction-Location of a2;
  commutativity;
::  for a1 being set
::  for a2 being AMI-Struct over NAT,a1
::  for a3 being Instruction-Location of a2
::  for a4 being natural set holds
::     a3 + a4 = a4 + a3;
end;

:: SCMNORM:funcnot 4 => SCMNORM:func 3
definition
  let a1 be set;
  let a2 be AMI-Struct over NAT,a1;
  let a3 be Instruction-Location of a2;
  let a4 be natural set;
  redefine func a3 -' a4 -> Instruction-Location of a2;
end;

:: SCMNORM:funcnot 5 => SCMNORM:func 4
definition
  let a1 be with_non-empty_elements set;
  let a2 be non empty stored-program definite AMI-Struct over NAT,a1;
  let a3 be finite Element of sproduct the Object-Kind of a2;
  let a4 be Element of NAT;
  redefine func Shift(a3,a4) -> finite Element of sproduct the Object-Kind of a2;
end;

:: SCMNORM:funcreg 1
registration
  let a1 be with_non-empty_elements set;
  let a2 be non empty stored-program definite AMI-Struct over NAT,a1;
  let a3 be finite programmed Element of sproduct the Object-Kind of a2;
  let a4 be Element of NAT;
  cluster Shift(a3,a4) -> finite programmed;
end;