[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
[mizar] Re: a term representing the extension of a type
Hi Josef,
Josef Urban <urban@ktilinux.ms.mff.cuni.cz> writes:
> On Wed, 29 Nov 2006, Jesse Alama wrote:
>
>> Andrzej Trybulec <trybulec@math.uwb.edu.pl> writes:
>>
>>> you probably need in the Environment Declaration
>>>
>>> registrations FRAENKEL;
>>
>> Why?
>
> Because the registrations in FRAENKEL ensure that the type Element of
> Funcs(A,B) widens to the "type" Function. "Function" is actually just
> syntactic sugar ("expandable mode") for attributes Function-like and
> Relation-like
> (http://mmlquery.mizar.org/mml/4.66.942/funct_1.html#NM1).
>
> When you import the needed registrations from FRAENKEL, i.e.
>
> registration let A, B be set;
> cluster Funcs(A,B) -> functional;
> end;
>
> registration let P be functional set;
> cluster -> Function-like Relation-like Element of P;
> end;
>
> the attribute "functional" will be automatically added to any
> "Funcs(A,B)" term, and the attributes "Function-like" and
> "Relation-like" will be automatically added to any term which already
> has the "functional" attribute, making it a "Function" (needed for the
> "." functor).
Thanks; I appreciate your help. It still seems that I'm missing
something, though.
In the MIZAR file in question the registerations directive is
registrations FRAENKEL, FINSET_1, XBOOLE_0, FUNCT_1, FUNCT_2, RELAT_1, SUBSET_1, NAT_1, INT_1, VECTSP_1;
Here's my definition of 1-chain of p:
definition let p be polyhedron;
mode 1-chain of p is Element of Funcs(edges(p),{0,1});
end;
Here's the problematic definition:
definition let p be polyhedron, c be 1-chain of p, v be vertex of p;
func ENumSet(p,c,v) -> Subset of {0,1} means
ex X being Subset of {0,1} st X = { aa(p,v,e) where e is edge of p : c.e = 1 } & it = sum(X);
::> *103
existence;
uniqueness;
end;
Error 103 is "Unknown functor". I'm pretty sure that the problem here
is that c does not have type `Function'. (Evidence:
definition let p be polyhedron, c be 1-chain of p, v be vertex of p;
func ENumSet(p,c,v) -> Subset of {0,1} means
ex X being Subset of {0,1} st X = { aa(p,v,e) where e is edge of p : (c qua Function).e = 1 } & it = sum(X);
::> *116
existence;
uniqueness;
end;
Error 116 is "Invalid `qua'".)
Here's what I think is happening. The term `Funcs(edges(p),{0,1})' has
type `functional' thanks to
registration let A, B be set;
cluster Funcs(A,B) -> functional;
end;
in FRAENKEL. Also, `Element of Funcs(edges(p),{0,1})' has type
`Function-like Relation-like Element of P', thanks to
registration let P be functional set;
cluster -> Function-like Relation-like Element of P;
end;
in FRAENKEL. (Does this statement say that any term that has type
Element of P, where P has type functional set, gets types
Function-like and Relation-like?) Finally, we have
definition
mode Function is Function-like Relation-like set;
end;
from FUNCT_1, which is in my definitions directive. (FUNCT_1 is also
in my registrations directive.)
Is this a correct reconstruction of what's happening?
What might account for the error that I'm getting?
Thanks,
Jesse
--
Jesse Alama (alama@stanford.edu)
*393: Incorrect beginning of a reasoning item