[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: If A=B & (A contains C), why mizar doesn't infer (B contains C)
On Mon, Jun 25, 2001 at 07:53:14PM +0200, Andrzej Trybulec wrote:
> Actually the Result Type (the Mother Ttype in the case of a mode) IS a part of
> the definition. When we implemented the "commutativity" condition Grzegorz
> almost immediately found the inconsistency, because the Result Type was not
> checked. His example:
>
> definition let a,b be set;
> mode First of a,b means
> :D: it = a;
> existence;
> end;
>
> definition let a,b be set;
> func a ? b -> First of a,b means
> not contradiction;
> correctness;
> commutativity;
> end;
>
> then form "obvious "
> 1 ? 0 = 0 ? 1
> one could infer
> 0=1
>
> Of course now it is checked.
I tried to play with something like this and here is what I got:
environ
vocabulary TRY, BOOLE;
constructors BOOLE;
notation BOOLE;
begin
definition let a,b be set;
mode First of a,b means
:D: it = a U b;
existence;
end;
definition let a,b be set;
func a ? b -> First of a,b means
not contradiction;
existence;
uniqueness proof
let it1,it2 be First of a,b such that
not contradiction and not contradiction;
thus it1 = a U b by D .= it2 by D;
end;
commutativity;
::> *84
end;
definition let a, b be set;
redefine func a ? b;
commutativity proof let a, b be set;
::> *84
thus a ? b = a U b by D .= b ? a by D;
end;
end;
consider a, b being set;
a ? b = b ? a;
How to get rid of that *84 error?
PR