SCHEMA Maths_space_arm;
  
USE FROM Engineering_analysis_basics_arm -- Engineering_analysis_basics
  (Class);
USE FROM Maths_value_arm -- Maths_value
  (Maths_value);
  
ENTITY Elementary_space
  SUBTYPE OF (Maths_space);
  code  :  STRING;
  supplier  :  STRING;
UNIQUE
  single_instance_of_class :  code, supplier; 
WHERE
  valid_standard_class :
    IF (supplier = 'ISO/PDTS 10303-1091') THEN
        code IN ['MS001', 'MS002', 'MS003', 'MS004'];
    ELSE
      TRUE;
    END_IF;
END_ENTITY;
  
ENTITY Integer_interval
  ABSTRACT SUPERTYPE OF (ONEOF (
  Finite_integer_interval,
  Hibounded_integer_interval,
  Lobounded_integer_intervall))
  SUBTYPE OF (Maths_space);
END_ENTITY;
  
ENTITY Finite_integer_interval
  SUBTYPE OF (Integer_interval);
  size  : INTEGER;
  lobnd : INTEGER;
DERIVE
  hibnd : INTEGER := lobnd + size - 1;
WHERE
  positive_definite_size :  size > 0;
END_ENTITY;
  
ENTITY Finite_real_interval
   SUBTYPE OF (Real_interval);
   lobnd : REAL;
   loclosure : BOOLEAN;
   hibnd : REAL;
   hiclosure : BOOLEAN;
WHERE
   nontrivial : lobnd < hibnd;
END_ENTITY;
  
ENTITY Finite_space
  SUBTYPE OF (Maths_space);
  members : SET [0,?] OF Maths_value;
END_ENTITY;
  
ENTITY Hibounded_integer_interval
  SUBTYPE OF (Integer_interval);
  hibnd  : INTEGER;
END_ENTITY;
  
ENTITY Hibounded_real_interval
   SUBTYPE OF (Real_interval);
   hibnd : REAL;
   hiclosure :  BOOLEAN;
END_ENTITY;
  
ENTITY Listed_product_space
  SUBTYPE OF (Product_space);
  factors : LIST [1,?] OF Maths_space;
END_ENTITY;
  
ENTITY Lobounded_real_interval
   SUBTYPE OF (Real_interval);
   lobnd : REAL;
   loclosure :  BOOLEAN;
END_ENTITY;
  
ENTITY Lobounded_integer_interval
  SUBTYPE OF (Integer_interval);
  lobnd  : INTEGER;
END_ENTITY;
  
ENTITY Maths_space
  SUPERTYPE OF (ONEOF (
  Elementary_space,
  Integer_interval,
  Real_interval,
  Finite_space,
  Tuple_space))
  SUBTYPE OF (Class);
END_ENTITY;
  
ENTITY Product_space
   ABSTRACT SUPERTYPE OF (ONEOF (
    Uniform_product_space,
    Listed_product_space))
   SUBTYPE OF (Tuple_space);
END_ENTITY;
  
ENTITY Real_interval
  ABSTRACT SUPERTYPE OF (ONEOF (
  Finite_real_interval,
  Hibounded_real_interval,
  Lobounded_real_interval))
  SUBTYPE OF (Maths_space);
END_ENTITY;
  
ENTITY Tuple_space
  SUPERTYPE OF (Product_space)
  SUBTYPE OF (Maths_space);
END_ENTITY;
  
ENTITY Uniform_product_space
  SUBTYPE OF (Product_space);
  base : Maths_space;
  exponent : INTEGER;
WHERE
  positive_exponent  :  exponent > 0; 
END_ENTITY;
  
END_SCHEMA;

Page last updated - 7 Sep 2000