[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PVS-Help] rewriting add_as_union



On Thu, May 8, 2008 at 5:58 PM, Jerome <jerome@xxxxxxxxxxxxxx> wrote:
> I'm trying to use the rewrite rule to get the following ([1]) to
> simplify:
>
>  [-1]  disjoint?(singleton(e!1), L!1)
>    |-------
>  [1]   fun(s!1, (union(singleton(e!1), L!1))) = s!1(e!1) o fun(s!1, L!1)
>
>  Rule? (rewrite "add_as_union" :dir RL)
>  No matching instance for add_as_union found.
>  No change on: (REWRITE "add_as_union" :DIR RL)
>  disjoint_compose.1 :
>
>  [-1]  disjoint?(singleton(e!1), L!1)
>    |-------
>  [1]   fun(s!1, (union(singleton(e!1), L!1))) = s!1(e!1) o fun(s!1, L!1)
>
> where 'add_as_union' is defined in the prelude to be:
>
>  add(x, a) = union(a, singleton(x))
>
> Is this problem due to the fact that the singleton and set definitions
> in my consequent are opposite to those in prelude? Is there anyway to
> use rewrite (or even rewrite-lemma) to get this to work? Thanks

Does rewriting with union_commutative help?
-- 
Jerry James
http://loganjerry.googlepages.com/