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

[mizar] a puzzling type error



In my formalization of Poincaré's proof of Euler's polyhedron formula
I need to define various vector spaces.  Currently I'm working on the
simplest vector space; I'm trying to get the MIZAR checker to accept
that it really is a vector space.  As it stands now, I'm having some
trouble with the vector addition operation.  Here's my current
definition:

definition let p be polyhedron, c,d be 0-chain of p;
  func 0-chain-sum(p,c,d) -> 0-chain of p means
  for x being vertex of p,
      y being Element of {0,1}
      holds [x,y] in it
            iff ex u,v being Element of {0,1}
                   st u = c.x &
                      v = d.x &
                      y = u+v;
end;

This definition is accepted in the sense that the only errors are *4's
on the correctness conditions (proofs of which I have temporarily put
aside).  I also have the functor registration

registration let p be polyhedron;
  cluster 0-chain-zero(p) -> 0-chain of p;
end;

for assigning the type 0-chain of p to what will be the zero vector in
the vector space I'm considering.  (Again, I have temporarily put
aside the *4 error on the coherence claim for this cluster.)  Despite
this registration and definition of 0-chain-sum, the statement

for c being 0-chain of p
    holds 0-chain-sum(p,c,0-chain-zero(p)) = c;

is rejected in the sense that the left-hand side of the equation gets
flagged with error *103 ("Unknown functor").  I'm puzzled why this
error has arisen; why might this be going on?

Thanks,

Jesse

PS I'm aware of a workaround, namely existentials:

for c being 0-chain of p, z being 0-chain of p st z = 0-chain-zero(p)
    holds 0-chain-sum(p,c,z) = c;

This statement flagged only with a *4 (naturally), but, if possible,
I'd like to avoid this approach.

-- 
Jesse Alama (alama@stanford.edu)
*104: Unknown structure (http://www.mizar.org)