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

Re: [mizar] the carrier of and [#]



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

> On Wed, 4 Apr 2007, Jesse Alama wrote:
>
>> Adam Naumowicz <adamn@math.uwb.edu.pl> writes:
>>
>>> On Wed, 4 Apr 2007, Jesse Alama wrote:
>>>
>>>> I faced a surprising problem recently concerning a seeming lack of
>>>> equality of
>>>>
>>>>  [#]V
>>>>
>>>> and
>>>>
>>>>  the carrier of V,
>>>>
>>>> where V has type VectSp of F, and F has type Field.  Specifically, the
>>>> statement
>>>>
>>>>  consider G being FinSequence of [#]V such that
>>>>    G is one-to-one and
>>>>    rng G = Carrier l and
>>>>    x - y = Sum (l (#) G) by VECTSP_6:def 9;
>>>> ::>                  *103
>>>>
>>>> where l is type Linear_Combination of A, A has type Subset of V, and x
>>>> and y have type Element of V, is rejected.  For reference,
>>>> VECTSP_6:def 9 is
>>>>
>>>>  definition let GF be non empty LoopStr;
>>>>             let V be non empty VectSpStr over GF;
>>>>             let L be Linear_Combination of V;
>>>>   assume A1: V is Abelian add-associative right_zeroed right_complementable;
>>>>   func Sum(L) -> Element of V means
>>>>    :Def9: ex F being FinSequence of the carrier of V st
>>>>      F is one-to-one & rng F = Carrier(L) & it = Sum(L (#) F);
>>>>
>>>> However, by changing "[#]V" to "the carrier of V", my statement is
>>>> accepted.  This surprised me, since, according to STRUCT_0:def 3, we
>>>> have [#]V = the carrier of V, and my original statement is rejected
>>>> even if I cite STRUCT_0:def 3.  What might be going on?
>>>
>>> Is STRUCT_0 listed in the 'definitions' directive? - only then the
>>> equals' definition works automatically - adding a subsequent reference
>>> to a universal sentence (the definitional theorem of STRUCT_0:def 3)
>>> won't help since the checker is able to use only one such universal
>>> premise in one disjunct in an inference.
>>
>> Yes, STRUCT_0 is in my definitions directive.  Any other ideas for
>> what might be going on?
>
> Sorry, I didn't give this enough thought - the error *103 is reported
> by the analyzer, the second pass of the verifier which checks the
> syntactic ant type correctness - it knows nothing of the equality of
> [#]G' and 'the carrier of G' - they are made equal only in the
> equalizer. So you can't use '[#]G' where the type correctness of '(#)'
> requires an argument of the type 'Finsequence of the carrier of G'.

OK, I understand now why I got the error.  Would it be possible to
incorporate the equalizer into the analyzer, so that statements like
the ones I made would be acceptable?

Thanks,

Jesse

-- 
Jesse Alama (alama@stanford.edu)
*950: Too many schemes (http://www.mizar.org)