[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: [mizar] widening BinOp to Relation



Hi Adam,

Adam Naumowicz <adamn@math.uwb.edu.pl> writes:

> On Thu, 1 Feb 2007, Jesse Alama wrote:
>
>> I'm puzzled about the relation between BinOp and Relation.  I became
>> curious when I got the error
>>
>> definition let p be polyhedron;
>>  func 0-circuit-sum(p) -> BinOp of 0-circuits(p) equals
>>  0-chain-sum(p)||0-circuits(p);
>> ::>              *103
>>
>> This error puzzled me because 0-chain-sum(p) is defined to have type
>> BinOp of 0-chains(p), and the functor || requires its left argument to
>> have Relation, and I assumed that the type BinOp widened to Relation.
>> I became even more puzzled when I looked at the statement of
>> REALSET1:3:
>>
>> for X being set,
>>    F being BinOp of X,
>>    A being Preserv of F holds F||A is BinOp of A
>>
>> As far as I can see, this statement ought to be flagged with error 103
>> for the same reason that my statement was flagged with that error.  No
>> new definition of BinOp is being used in REALSET1:3, as I confirmed by
>> browsing the semantic presentation of that article.
>>
>> What might be going on?  Why would I get *103'd but not REALSET1:3?
>
> It seems that you don't have RELSET_1 present among your registrations
> directives. Tracing back the widening relation of BinOp of A one comes
> to Subset of [:A,A:] which is Relation-like only in the presence of a
> suitable registration from RELSET_1 - the first one.
>
> Please let me know if this solved the problem.

You were right -- including RELSET_1 in the registrations directive
solved the problem.  How did you know to look at RELSET_1?

Thanks much,

Jesse

-- 
Jesse Alama (alama@stanford.edu)
*56: Disagreement of types (http://www.mizar.org)