[isabelle-dev] NEWS: avoid the Complex constructor, use the more natural

Johannes Hölzl hoelzl at in.tum.de
Tue May 13 11:33:54 CEST 2014

Am Sonntag, den 11.05.2014, 04:55 -0700 schrieb Andrei Popescu:
> > Johannes wrote:
> > Theorems about complex numbers are now stated only using Re and Im,
> the Complex
> >  constructor is not used anymore. It is possible to use primcorec to
> defined the behaviour of a complex-valued function.
> >> Makarius wrote:
> >> That is indeed very nice.  Is that a new invention or an old trick
> that every category theorist knows?

I do not count myself a category theorist (I don't know what a functor
adjunction is). As Manuel pointed out, the change was mostly a
bureaucratic one.
It boils down to the fact that the Re/Im rules should match more often.

For example assume one wants to proof:

  "Complex a b + cis x + Complex c d = cis x + Complex (c + a) (b + d)"

(where "cis x = cos x + i * sin x")

With complex_eq_iff and the Re/Im rules this can be proved by
field_simps, even without giving Re/Im rules for cis. When we only have
the Complex rules, this does not work, we need either to do a case-split
on "cis x", or unfold cis_def. 

 - Johannes

More information about the isabelle-dev mailing list