include "primitives.alh" Class Float {} Class String {} Class Block{} Class ICBlock{} Class ConstantBlock{ name = "Constant" value : Float { target_lower_cardinality = 1 target_upper_cardinality = 1 } } Class AdditionBlock{ name = "Addition" } Class NegatorBlock{ name = "Negator" } Class MultiplyBlock{ name = "Multiply" } Class InverseBlock{ name = "Inverse" } Class DelayBlock{ name = "Delay" } Class IntegratorBlock{ name = "Integrator" } Class DerivatorBlock{ name = "Derivator" } Class ProbeBlock{ name = "Probe" name : String { target_lower_cardinality = 1 target_upper_cardinality = 1 } } Association Link(Block, Block){} Association InitialCondition(Block, ICBlock){ source_lower_cardinality = 1 source_upper_cardinality = 1 } Inheritance (ConstantBlock, Block){} Inheritance (AdditionBlock, Block){} Inheritance (NegatorBlock, Block){} Inheritance (MultiplyBlock, Block){} Inheritance (InverseBlock, Block){} Inheritance (ProbeBlock, Block){} Inheritance (ICBlock, Block){} Inheritance (DelayBlock, ICBlock){} Inheritance (IntegratorBlock, ICBlock){} Inheritance (DerivatorBlock, ICBlock){}