The normalization command extracts the property that is implicit in a declaration, reducing the declaration to be in terms of the carrier set of the underlying type (unlike predication).
...; i : e; ... | p | ![]() | ...; i : carrier (![]() ![]() ![]() |
...; i == e; ... | p | ![]() | ...; i : carrier (![]() ![]() ![]() |
...; e; ... | p | ![]() | ...; carrier (![]() ![]() |
In the first two rules, it must be the name of the declaration that is inspected. In the last rule, that of a schema declaration, it must be the schema inclusion declaration that is inspected, not the schema expression within it - an extra click of button 1 is needed. The extracted property is that schema expression used as a predicate.
The normalization command can also be applied to declarations in the hypothesis part of a goal, the new predicate being generated as the first antecedent.
The normalization command can also be applied
to a quantified predicate with a schema text
whose | part is not true:
the predicate of that | part is logically combined with
the predicate in the part.
![]() ![]() | ![]() | ![]() ![]() ![]() |
![]() ![]() | ![]() | ![]() ![]() ![]() |
![]() ![]() | ![]() | ![]() ![]() ![]() |
See also denormalization.
"normalization" d1 d2
This example applies the normalization command to declarations d1 and d2.