templates for structuring documentation files. the files can be split as required.
the format can be anything that supports outlines, including plaintext formats.
text surrounded by {{}} is non-literal and the result replaces the text including the braces.
model.iteach procedure entry has the same internal subsections. subsections may be empty but must appear in this order:
syntax:
{{procedure_name}}
role:
{{sentence}}
domain:
{{sentence}}
result:
{{sentence}}
admissibility:
{{sentence}}
equivalence:
{{sentence}}
interaction:
{{sentence}}the procedure name appears only once as the section header. no duplicate sub-heading is permitted.
sentences inside procedure subsections are restricted to a small set of logical schemas. the listed forms are exemplars, not an exhaustive or exclusive operator set.
definitional equality
conditional inclusion
relational bounds
cardinality
uniqueness
algebraic laws
f(op(a, b)) equals op(f(a), f(b))
r(a, b) implies r(f(a), f(b))
here, r denotes an arbitrary binary relation and op denotes an arbitrary binary operator. no specific ordering or inequality relation is implied or privileged.
prohibited inside procedures:
allowed:
model.itsignature ::= input "->" output
multiple ::= element element ...
alternates ::= element "/" element ...
names ::= type ":" alias ...
optional ::= "[" element ... "]"
repetition ::= element "..."
naming ::= name "::" arguments "->" result
list ::= "(" element ... ")"
map_or_fn ::= "{" key_or_input "->" value_or_output "}"# {{model name}}
{{general description if not placed in general.it}}
## structures
{{name}}
{{field}}
{{field}}: {{type}}
{{field}}: ({{topology}})
...
## procedures
{{procedure}}
...
## signatures
{{function signatures}}
## algorithmic hierarchy
{{high-level list of algorithms and how they compose the feature}}considerations.it{{question}}
{{context}}
option - selected
{{attributes}}
option
{{attributes}}
option
...notes.it{{topic}}
{{idea or fragment}}
{{sub-detail}}
{{topic}}
{{note text}}general.it