[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
[mizar] Revising UPROOTS: Global Choine
In his excellent analysis of inaccessible cardinals in Mizar prof. Solovay
complained that it cannot be done inside Mizar, because of the
Axiom of Choice.
I had proposed TG as the axiomatics mostly because it allows for
a proper development of category theory. But the fact that in it
we can prove AC was a little bit more than just a bonus.
The proof of AC was done twice in MML
i. by Nowak & Bialecki, following the original proof of Tarski
(WELLSET1)
ii. by Bancerek, the proof similar to the one in Morse-Kelley set theory:
using the fact that the set of all ordinals in a Tarski class
has the same cardinality as the class itself. Tarski's Axiom A
is related to the Size Axiom in MK
(WELLORD2)
Then Rudnicki introduced an absolutely permissive functor
let S be set;
assume
Z: contradiction;
func choose S -> Element of S means
not contradiction;
correctness by Z;
(now in SUBSET_1)
and it became obvious that, using the Replacement, we can prove AC in MML
without Tarski's Axioms A.
Actually we may consider a generic definition
let ... ;
assume
Z: contradiction;
func the \mi of ... -> \mi of ... means
not contradiction;
correctness by Z;
for an arbitrary mode \mi.
It cannot be formulated in Mizar, but we can formulate all
instances of it.
In the most recent version of Mizar (7.10.01) this generic definition is
built-in (implemented by Czeslaw Bylinski).
So, for arbitrary type \theta we can use the term
the \theta
The only fact about it that Mizar knows is:
the \theta is \theta.
I guess it can be called Global Choice (Mizar types mimic classes).
It is already used in XBOOLE_0
func {} -> set equals
the empty set;
and in SUBSET_1:
let S be set;
func choose S -> Element of S equals
the Element of S;
Recently I observed that it can also be used for the definition
of the 'canFS' functor in UPROOTS:
let A be finite set;
func canFS(A) -> FinSequence of A equals
the bijective FinSequence of A;
The original definition is rather complicated:
let A be finite set;
func canFS(A) -> FinSequence of A means
len it = card A &
ex f being FinSequence st len f = card A &
(f.1 = [choose A, A \ {choose A}] or card A = 0) &
(for i being Element of NAT st 1 <= i & i < card A for x being set
st f.i = x holds f.(i+1) = [choose x`2, x`2 \ {choose x`2}]) &
for i being Element of NAT st i in dom it holds it.i = (f.i)`1;
But the work done by the Authors of UPROOTS is not completely wasted. The
new definition needs the registration
let A be finite set;
cluster bijective FinSequence of A;
and to prove the existence condition of the registration I have copied
and simplified the proof of the existence condition of
the original definition and the prove of
theorem :: UPROOTS:5
for A being finite set holds rng canFS(A) = A;
We also need that the FinSequence is one-to-one, but it
can be justified using the Pigeon Hole Principle (FINSEQ_4:77),
that the Authors of UPROOTS had not noticed.
There is a gain: the article gets shorter by more that 200 lines.
The original definition is used only to state that
for A being finite set holds len canFS A = card A;
So, after the revision it should be a theorem. It can be proved in two lines,
again using FINSEQ_4:77.
Regards,
Andrzej Trybulec