[isabelle-dev] NEWS: numeral representation
Brian Huffman
huffman at in.tum.de
Sun Mar 25 20:32:24 CEST 2012
As of 2a1953f0d20d, Isabelle now has a new representation for binary numerals:
*** HOL ***
* The representation of numerals has changed. We now have a datatype
"num" representing strictly positive binary numerals, along with
functions "numeral :: num => 'a" and "neg_numeral :: num => 'a" to
represent positive and negated numeric literals, respectively. (See
definitions in Num.thy.) Potential INCOMPATIBILITY; some user theories
may require adaptations:
- Theorems with number_ring or number_semiring constraints: These
classes are gone; use comm_ring_1 or comm_semiring_1 instead.
- Theories defining numeric types: Remove number, number_semiring,
and number_ring instances. Defer all theorems about numerals until
after classes one and semigroup_add have been instantiated.
- Numeral-only simp rules: Replace each rule having a "number_of v"
pattern with two copies, one for numeral and one for neg_numeral.
- Theorems about subclasses of semiring_1 or ring_1: These classes
automatically support numerals now, so more simp rules and
simprocs may now apply within the proof.
- Definitions and theorems using old constructors Pls/Min/Bit0/Bit1:
Redefine using other integer operations.
There are still a couple of loose ends to take care of, which are
currently marked with "BROKEN" in the sources:
* Nitpick_Examples/Integer_Nits.thy: A call to nitpick on a goal with
negative numerals doesn't work. I expect the problem originates in
Tools/Nitpick/nitpick_hol.ML, which I have adapted to handle positive
numerals only; it needs a neg_numeral case.
* SMT_Examples/SMT_{Examples,Tests}.thy: Some smt proofs don't work,
because the .certs files need to be updated again.
* Library/Float.thy: There are some simp rules for a bit-length
operation expressed in terms of the old binary constructors.
I also tested most of the AFP entries, and RSAPSS/Word.thy seems to be
the only theory that breaks: It contains definitions that use the old
binary constructors.
- Brian
More information about the isabelle-dev
mailing list