We formalize the invariants for the concept descriptions since now the
data specifications are embedded.
We make the verification functions implementation-specific since the
casts are very clumsy to formalize and transpile in a readable way
across languages. For example, since Python does not have
a null-coalescing operator, formalizing the constraints such as
AASc-004 would involve walrus operator and would result in
an unreadable invariant.
Therefore, we decided to encapsulate the logic in these few functions
and estimate the maintenance effort to dwarf the effort needed to get
this right in aas-core-codegen.
We formalize the invariants for the concept descriptions since now the data specifications are embedded.
We make the verification functions implementation-specific since the casts are very clumsy to formalize and transpile in a readable way across languages. For example, since Python does not have a null-coalescing operator, formalizing the constraints such as
AASc-004
would involve walrus operator and would result in an unreadable invariant.Therefore, we decided to encapsulate the logic in these few functions and estimate the maintenance effort to dwarf the effort needed to get this right in aas-core-codegen.