text‹ It should be noted that instantiating the unary minus class, @{class uminus}, will also
provide negation UTP predicates later. ›
instantiation uexpr :: (uminus, type) uminus begin definition uminus_uexpr_def [uexpr_defs]: "- u = uop uminus u" instance .. end
instantiation uexpr :: (minus, type) minus begin definition minus_uexpr_def [uexpr_defs]: "u - v = bop (-) u v" instance .. end
instantiation uexpr :: (times, type) times begin definition times_uexpr_def [uexpr_defs]: "u * v = bop times u v" instance .. end
instance uexpr :: (Rings.dvd, type) Rings.dvd ..
instantiation uexpr :: (divide, type) divide begin definition divide_uexpr :: "('a, 'b) uexpr ==> ('a, 'b) uexpr ==> ('a, 'b) uexpr"where
[uexpr_defs]: "divide_uexpr u v = bop divide u v" instance .. end
instantiation uexpr :: (inverse, type) inverse begin definition inverse_uexpr :: "('a, 'b) uexpr ==> ('a, 'b) uexpr" where [uexpr_defs]: "inverse_uexpr u = uop inverse u" instance .. end
instantiation uexpr :: (modulo, type) modulo begin definition mod_uexpr_def [uexpr_defs]: "u mod v = bop (mod) u v" instance .. end
instantiation uexpr :: (sgn, type) sgn begin definition sgn_uexpr_def [uexpr_defs]: "sgn u = uop sgn u" instance .. end
instantiation uexpr :: (abs, type) abs begin definition abs_uexpr_def [uexpr_defs]: "abs u = uop abs u" instance .. end
text‹ Once we've set up all the core constructs for arithmetic, we can also instantiate the
type classes for various algebras, including groups and rings. The proofs are done by
definitional expansion, the \emph{transfer} tactic, and then finally the theorems of the underlying
HOL operators. This is mainly routine, so we don't comment further. ›
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.