entity_type
INSTANCE entity_type#1;
name = "defined_type";
is_abstract = false;
subtype_of = {entity_type#2};
explicit_attributes = {explicit_attribute#3};
END_INSTANCE;
INSTANCE entity_type#2;
name = "named_type";
is_abstract = true;
supertype_of = oneof_expression#1;
subtype_of = {entity_type#3};
explicit_attributes = {explicit_attribute#1, explicit_attribute#2};
END_INSTANCE;
INSTANCE entity_type#3;
name = "frame";
is_abstract = true;
explicit_attributes = {};
END_INSTANCE;
INSTANCE entity_type#4;
name = "entity_type";
is_abstract = false;
subtype_of = {entity_type#2};
explicit_attributes = {explicit_attribute#4, explicit_attribute#5, explicit_attribute#6, explicit_attribute#7, explicit_attribute#8, explicit_attribute#9, explicit_attribute#10, explicit_attribute#11};
END_INSTANCE;
INSTANCE entity_type#5;
name = "explicit_attribute";
is_abstract = false;
subtype_of = {entity_type#6};
explicit_attributes = {explicit_attribute#15};
inverse_attributes = {inverse_attribute#1};
END_INSTANCE;
INSTANCE entity_type#6;
name = "attribute";
is_abstract = true;
supertype_of = oneof_expression#2;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#12, explicit_attribute#13, explicit_attribute#14};
END_INSTANCE;
INSTANCE entity_type#7;
name = "expression";
is_abstract = true;
supertype_of = oneof_expression#3;
subtype_of = {entity_type#3};
explicit_attributes = {};
END_INSTANCE;
INSTANCE entity_type#8;
name = "inverse_attribute";
is_abstract = false;
subtype_of = {entity_type#6};
explicit_attributes = {explicit_attribute#16};
inverse_attributes = {inverse_attribute#2};
END_INSTANCE;
INSTANCE entity_type#9;
name = "derived_attribute";
is_abstract = false;
subtype_of = {entity_type#6};
explicit_attributes = {explicit_attribute#17};
inverse_attributes = {inverse_attribute#3};
END_INSTANCE;
INSTANCE entity_type#10;
name = "domain_rule";
is_abstract = false;
subtype_of = {entity_type#11};
explicit_attributes = {explicit_attribute#19};
inverse_attributes = {inverse_attribute#4};
END_INSTANCE;
INSTANCE entity_type#11;
name = "local_rule";
is_abstract = true;
supertype_of = oneof_expression#4;
subtype_of = {entity_type#3};
explicit_attributes = {explicit_attribute#18};
END_INSTANCE;
INSTANCE entity_type#12;
name = "unique_rule";
is_abstract = false;
subtype_of = {entity_type#11};
explicit_attributes = {explicit_attribute#20};
inverse_attributes = {inverse_attribute#5};
END_INSTANCE;
INSTANCE entity_type#13;
name = "literal_expression";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#21};
END_INSTANCE;
INSTANCE entity_type#14;
name = "built_in_constant";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#22};
END_INSTANCE;
INSTANCE entity_type#15;
name = "unary_operation";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#23, explicit_attribute#24};
END_INSTANCE;
INSTANCE entity_type#16;
name = "binary_operation";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#25, explicit_attribute#26, explicit_attribute#27};
END_INSTANCE;
INSTANCE entity_type#17;
name = "query_expression";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#28, explicit_attribute#29, explicit_attribute#30};
END_INSTANCE;
INSTANCE entity_type#18;
name = "built_in_function_call";
is_abstract = false;
subtype_of = {entity_type#19};
explicit_attributes = {explicit_attribute#32};
END_INSTANCE;
INSTANCE entity_type#19;
name = "function_call";
is_abstract = true;
supertype_of = oneof_expression#5;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#31};
END_INSTANCE;
INSTANCE entity_type#20;
name = "user_function_call";
is_abstract = false;
subtype_of = {entity_type#19};
explicit_attributes = {explicit_attribute#33};
END_INSTANCE;
INSTANCE entity_type#21;
name = "qualifier";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#34, explicit_attribute#35, explicit_attribute#36, explicit_attribute#37};
END_INSTANCE;
INSTANCE entity_type#22;
name = "aggregate_initialiser";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#38};
END_INSTANCE;
INSTANCE entity_type#23;
name = "aggregate_initialiser_element";
is_abstract = false;
explicit_attributes = {explicit_attribute#39, explicit_attribute#40};
inverse_attributes = {inverse_attribute#6};
END_INSTANCE;
INSTANCE entity_type#24;
name = "aggregation_type";
is_abstract = false;
subtype_of = {entity_type#3};
explicit_attributes = {explicit_attribute#41, explicit_attribute#42, explicit_attribute#43, explicit_attribute#44, explicit_attribute#45, explicit_attribute#46};
END_INSTANCE;
INSTANCE entity_type#25;
name = "oneof_expression";
is_abstract = false;
explicit_attributes = {explicit_attribute#47};
END_INSTANCE;
INSTANCE entity_type#26;
name = "and_expression";
is_abstract = false;
explicit_attributes = {explicit_attribute#48, explicit_attribute#49};
END_INSTANCE;
INSTANCE entity_type#27;
name = "andor_expression";
is_abstract = false;
explicit_attributes = {explicit_attribute#50, explicit_attribute#51};
END_INSTANCE;
INSTANCE entity_type#28;
name = "adder";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#54, explicit_attribute#55};
END_INSTANCE;
INSTANCE entity_type#29;
name = "higher_level_constraint";
is_abstract = true;
subtype_of = {entity_type#3};
explicit_attributes = {explicit_attribute#52, explicit_attribute#53};
END_INSTANCE;
INSTANCE entity_type#30;
name = "multiplier";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#56, explicit_attribute#57};
END_INSTANCE;
INSTANCE entity_type#31;
name = "equation";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#58};
END_INSTANCE;
INSTANCE entity_type#32;
name = "conjunction";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {};
inverse_attributes = {inverse_attribute#7};
END_INSTANCE;
INSTANCE entity_type#33;
name = "bound";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#59, explicit_attribute#60, explicit_attribute#61, explicit_attribute#62, explicit_attribute#63};
END_INSTANCE;
INSTANCE entity_type#34;
name = "exactly_one";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#64, explicit_attribute#65};
END_INSTANCE;
INSTANCE entity_type#35;
name = "at_most_one";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#66, explicit_attribute#67};
END_INSTANCE;
INSTANCE entity_type#36;
name = "non_null";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#68};
END_INSTANCE;
INSTANCE entity_type#37;
name = "range";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#69, explicit_attribute#70, explicit_attribute#71};
END_INSTANCE;
INSTANCE entity_type#38;
name = "zero_or_more";
is_abstract = false;
subtype_of = {entity_type#29};
explicit_attributes = {explicit_attribute#72};
END_INSTANCE;
INSTANCE entity_type#39;
name = "unresolved_reference";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#73};
END_INSTANCE;
INSTANCE entity_type#40;
name = "query_variable";
is_abstract = false;
subtype_of = {entity_type#7};
explicit_attributes = {explicit_attribute#74};
inverse_attributes = {inverse_attribute#8};
END_INSTANCE;
INSTANCE entity_type#41;
name = "case_frame";
is_abstract = false;
subtype_of = {entity_type#3};
explicit_attributes = {explicit_attribute#75, explicit_attribute#76};
END_INSTANCE;
INSTANCE entity_type#42;
is_abstract = true;
supertype_of = oneof_expression#6;
END_INSTANCE;
INSTANCE entity_type#43;
is_abstract = false;
supertype_of = oneof_expression#7;
END_INSTANCE;
INSTANCE entity_type#44;
name = "man";
is_abstract = false;
subtype_of = {entity_type#47};
explicit_attributes = {};
higher_level_constraints = conjunction#8;
END_INSTANCE;
INSTANCE entity_type#45;
name = "woman";
is_abstract = false;
subtype_of = {entity_type#47};
explicit_attributes = {};
higher_level_constraints = conjunction#7;
END_INSTANCE;
INSTANCE entity_type#46;
name = "student";
is_abstract = false;
explicit_attributes = {explicit_attribute#120};
derived_attributes = {derived_attribute#2};
inverse_attributes = {inverse_attribute#9};
higher_level_constraints = conjunction#9;
END_INSTANCE;
INSTANCE entity_type#47;
name = "person";
domain_rules = {domain_rule#1};
is_abstract = true;
supertype_of = oneof_expression#8;
explicit_attributes = {explicit_attribute#116, explicit_attribute#117, explicit_attribute#118, explicit_attribute#119, explicit_attribute#122};
higher_level_constraints = conjunction#4;
END_INSTANCE;
INSTANCE entity_type#48;
name = "staff";
is_abstract = false;
explicit_attributes = {explicit_attribute#115};
inverse_attributes = {inverse_attribute#10};
higher_level_constraints = conjunction#10;
END_INSTANCE;
INSTANCE entity_type#49;
name = "course";
is_abstract = false;
explicit_attributes = {explicit_attribute#109, explicit_attribute#110, explicit_attribute#111, explicit_attribute#112, explicit_attribute#113, explicit_attribute#114};
inverse_attributes = {inverse_attribute#11, inverse_attribute#12};
unique_rules = {unique_rule#1};
higher_level_constraints = conjunction#6;
END_INSTANCE;
INSTANCE entity_type#50;
name = "student_course_record";
is_abstract = false;
explicit_attributes = {explicit_attribute#130, explicit_attribute#131, explicit_attribute#132};
derived_attributes = {derived_attribute#3};
inverse_attributes = {inverse_attribute#13};
higher_level_constraints = conjunction#3;
END_INSTANCE;