Vocabulary name overloading

Jeffrey Madsen <[email protected]>
Newsgroups gmane.comp.mathematics.mizar
Message-ID <CAKR9mxQ3wKvZQh6d-aZU+ekvjN26LnPmx+AJdh=5xhH40+3_Cg@mail.gmail.com>
I came across a puzzling error in the following snippet of code:

definition
  let R be comRing;
  let I be Subset of Quot(R);
  attr I is invertible means
  :Def1:
  I * I" = rng NatHom Quot(R);
end;

definition
  let R be comRing;
  let I be Subset of R;
  attr I is invertible means
  :Def2:
  (NatHom Quot(R)) .: I is invertible;
end;

now
  let R be comRing;
  let I be Subset of R;
  assume I is invertible;
  then (NatHom Quot(R)) .: I is invertible by Def2;
::>                                         *4
end;

(NatHom Quot(R) has type "Function of R, Quot(R)".)

The error does not occur when I give the two definitions different names,
but I'd like to use the same name for both. What's weird is there shouldn't
be any conflict, because "Subset of R" does not widen to "Subset of
Quot(R)" or vice versa. Can anyone see what I'm doing wrong?

Thanks,

Jeff
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.