Re: a question

Adam Naumowicz <[email protected]>
Newsgroups gmane.comp.mathematics.mizar,gmane.spam.detected
Message-ID <Pine.GSO.4.61.0912230617580.28940@math>
Dear Adem,

On Tue, 22 Dec 2009, Ozyavas, Adem wrote:

> I asked the group a question on how to write recursive predicates in Mizar. The following is the
>
> result of correspondce of emails back and forth. It gives a definition for an inductive factorial predicate.
>
> definition
>  let n,x be natural number;
>  pred factorial(n,x) means
>   for Y being set st
>   [0,1] in Y & (for k,y being natural number st [k,y] in Y holds [k+1,y*(k+1)] in Y)
>   holds [n,x] in Y;
> end;
>
>
> First of all, there is not a unique set that satisfies the above definition. A set
> {[0,0!], [1,1!], [2,2!], ..., [n,n!]} \/ [3,3] would satisfy the set consructed with the above
> definition so that it is not possible to disprove
>
> factorial 3,3.

No, it _is_ possible to disprove it, below is the proof :-))

environ
  vocabularies FACTOR,ORDINAL1,CARD_1,ARYTM_3,RELAT_1,REALSET1,ZFMISC_1,NUMBERS;
  notations TARSKI,ORDINAL1,CARD_1,NUMBERS,NAT_1,NEWTON,ZFMISC_1;
  constructors ORDINAL1,CARD_1,NAT_1,NEWTON,ZFMISC_1,REAL_1;
  registrations ORDINAL1;
  requirements BOOLE,SUBSET,NUMERALS,ARITHM;
  schemes XBOOLE_0;
  theorems ZFMISC_1,STIRL2_1,NEWTON;
begin

definition
   let n,x be natural number;
   pred factorial n,x means :def1:
    for Y being set st
    [0,1] in Y & (for k,y being natural number st [k,y] in Y holds 
[k+1,y*(k+1)] in Y)
    holds [n,x] in Y;
end;

factorial 3,6
proof
   let Y be set;
   assume a: [0,1] in Y & (for k,y being natural number st [k,y] in Y holds 
[k+1,y*(k+1)] in Y);
   then [0+1,1*(0+1)] in Y;
   then [1+1,1*(1+1)] in Y by a;
   then [2+1,2*(2+1)] in Y by a;
   hence thesis;
end;

not factorial 3,3
proof
   assume a: not thesis;
   defpred P[set] means ex n being natural number st $1 = [n,n!];
   consider X being set such that
   x: for x being set holds x in X iff x in [:NAT,NAT:] & P[x] from 
XBOOLE_0:sch 1;
   z: [0,1] in [:NAT,NAT:] by ZFMISC_1:def 2;
   b: [0,1] in X by x,z,NEWTON:18;
   now
     let k,y be natural number;
     assume [k,y] in X; then
     consider l being natural number such that
     l: [k,y]=[l,l!] by x;
     y: k=l & y=l! by l,ZFMISC_1:33;
     n: [k+1,y*(k+1)] in [:NAT,NAT:] by ZFMISC_1:def 2;
     [k+1,(k+1)!]=[k+1,y*(k+1)] by y,NEWTON:21;
     hence [k+1,y*(k+1)] in X by n,x;
   end;
   then [3,3] in X by a,b,def1; then
   consider n being natural number such that
   n: [3,3]=[n,n!] by x;
   n=3 & n!=3 by n,ZFMISC_1:33;
   hence contradiction by STIRL2_1:60;
end;


> Most of the time, a third item is mentioned in an inductive definition (after (i) base case, (ii)
> inductive case) which is "the minimal set that satifies the first and second items (or the
> generalized intersection of all sets that satify (i) and (ii))".

It's not needed - the "for Y" in the definition guarantees, that the 
condition also holds for the 'minimal' set.

Best,

Adam Naumowicz

=======================================================================
Dept. of Programming and Formal Methods  Fax: +48(85)7457662
Institute of Informatics                 Tel: +48(85)7457559 (office)
University of Bialystok                  E-mail: [email protected]
Sosnowa 64, 15-887 Bialystok, Poland     http://math.uwb.edu.pl/~adamn/
=======================================================================
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.