[isabelle-dev] Problems with datatype-new

René Thiemann rene.thiemann at uibk.ac.at
Wed Jun 25 13:49:40 CEST 2014


Dear all,

I have an unexpected problem when defining a datatype using datatype_new.

theory Test
imports  
  "$AFP/Collections/ICF/impl/RBTSetImpl"
begin
datatype_new ('a,'b) bar = Foo 'a "'b option" "'b rs"

(*
Proof failed.
 1. ⋀g ga h.
       local.bar.ctor_rec_bar
        (λx. case local.bar.Rep_bar_pre_bar x of (l, la, xa) ⇒ h (g l) (map_option (λx. x) la) xa) =
       local.bar.ctor_rec_bar (λx. case local.bar.Rep_bar_pre_bar x of (x1, xa, xb) ⇒ h (g x1) xa xb)
The error(s) above occurred for the goal statement⌂:
⋀g ga h. local.bar.rec_bar h ∘ local.bar.map_bar g = local.bar.rec_bar (λx. h (g x))*)
end

The problem vanishes if I make the datatype slightly more easier, e.g., if
- I declare 'a or 'b as dead
- 'b option or 'b rs is changed to pure 'b
- 'a is dropped

Just wanting to report this,
René

Isabelle: 52dfde98be4a
AFP: 23c1c5591d9f


More information about the isabelle-dev mailing list